3 #endif /* ifdef HAVE_CONFIG_H */
5 #include "ecore_x_private.h"
7 static Eina_Bool _gesture_available = EINA_FALSE;
10 static int _gesture_major, _gesture_minor, _gesture_patch;
12 #endif /* ifdef ECORE_XGESTURE */
15 _ecore_x_gesture_init(void)
23 if (XGestureQueryVersion(_ecore_x_disp, &_gesture_major, &_gesture_minor, &_gesture_patch))
25 _gesture_version = (_gesture_major << 16) | _gesture_minor;
26 _gesture_available = EINA_TRUE;
29 _gesture_available = EINA_FALSE;
30 #else /* ifdef ECORE_XGESTURE */
31 _gesture_available = EINA_FALSE;
32 #endif /* ifdef ECORE_XGESTURE */
36 * @brief Query whether gesture is available or not.
38 * @return @c EINA_TRUE, if extension is available, @c EINA_FALSE otherwise.
41 ecore_x_gesture_supported(void)
43 return _gesture_available;
47 ecore_x_gesture_events_select(Ecore_X_Window win,
48 Ecore_X_Gesture_Event_Mask mask)
51 if (!_gesture_available)
54 LOGFN(__FILE__, __LINE__, __FUNCTION__);
55 XGestureSelectEvents(_ecore_x_disp, win, mask);
56 if (_ecore_xlib_sync) ecore_x_sync();
59 #else /* ifdef ECORE_XGESTURE */
63 #endif /* ifdef ECORE_XGESTURE */
66 EAPI Ecore_X_Gesture_Event_Mask
67 ecore_x_gesture_events_selected_get(Ecore_X_Window win)
70 Ecore_X_Gesture_Event_Mask mask;
72 if (!_gesture_available)
73 return ECORE_X_GESTURE_EVENT_MASK_NONE;
75 LOGFN(__FILE__, __LINE__, __FUNCTION__);
76 if (GestureSuccess != XGestureGetSelectedEvents(_ecore_x_disp, win, (Mask *)&mask))
77 mask = ECORE_X_GESTURE_EVENT_MASK_NONE;
78 if (_ecore_xlib_sync) ecore_x_sync();
81 #else /* ifdef ECORE_XGESTURE */
83 return ECORE_X_GESTURE_EVENT_MASK_NONE;
84 #endif /* ifdef ECORE_XGESTURE */
88 ecore_x_gesture_event_grab(Ecore_X_Window win,
89 Ecore_X_Gesture_Event_Type type,
94 if (!_gesture_available)
97 LOGFN(__FILE__, __LINE__, __FUNCTION__);
98 ret = (GestureGrabSuccess == XGestureGrabEvent(_ecore_x_disp, win, type, num_fingers, CurrentTime));
99 if (_ecore_xlib_sync) ecore_x_sync();
101 #else /* ifdef ECORE_XGESTURE */
106 #endif /* ifdef ECORE_XGESTURE */
110 ecore_x_gesture_event_ungrab(Ecore_X_Window win,
111 Ecore_X_Gesture_Event_Type type,
114 #ifdef ECORE_XGESTURE
117 if (!_gesture_available)
120 LOGFN(__FILE__, __LINE__, __FUNCTION__);
121 ret = (GestureUngrabSuccess == XGestureUngrabEvent(_ecore_x_disp, win, type, num_fingers, CurrentTime));
122 if (_ecore_xlib_sync) ecore_x_sync();
124 #else /* ifdef ECORE_XGESTURE */
129 #endif /* ifdef ECORE_XGESTURE */