Lines Matching defs:grab
111 if (gi->listener.grab) {
112 FreeGrab(gi->listener.grab);
113 gi->listener.grab = NULL;
146 * @returns TRUE if the specified grab or selection is the current owner of
157 enum GestureListenerType type, WindowPtr window, const GrabPtr grab)
163 /* We need a copy of the grab, not the grab itself since that may be deleted by
165 if (grab)
166 g = AllocGrab(grab);
172 gi->listener.grab = g;
177 GestureAddGrabListener(DeviceIntPtr dev, GestureInfoPtr gi, GrabPtr grab)
183 if (grab->grabtype == XI2) {
184 if (xi2mask_isset(grab->xi2mask, dev, XI_GesturePinchBegin) ||
185 xi2mask_isset(grab->xi2mask, dev, XI_GestureSwipeBegin)) {
190 else if (grab->grabtype == XI || grab->grabtype == CORE) {
194 BUG_RETURN_MSG(1, "Unsupported grab type\n");
197 /* grab listeners are always RT_NONE since we keep the grab pointer */
198 GestureAddListener(gi, grab->resource, RT_NONE, type, grab->window, grab);
202 * Add one listener if there is a grab on the given window.
210 GrabPtr grab = CheckPassiveGrabsOnWindow(win, dev, ev, check_core,
212 if (!grab)
216 ActivateGrabNoDelivery(dev, grab, ev, ev);
217 GestureAddGrabListener(dev, gi, grab);
253 /* Any current grab will consume all gesture events */
254 if (dev->deviceGrab.grab) {
255 GestureAddGrabListener(dev, gi, dev->deviceGrab.grab);
259 /* Find passive grab that would be activated by this event, if any. If we're handling
260 * ReplayDevice then the search starts from the descendant of the grab window, otherwise
288 * need to walk all the gestures and remove this grab from listener */