ecore_x: remove support XGesture extension

Summary:
This was a X11 extension mainly developed for Tizen. By now I can only
find it packaged by Gentoo as the only Linux distribution and Tizen is
now longer using it either. Bringing it up during EDD and on the mailing
list did not come up with any users.
I think we can go ahead and deprecate the API and remove the
functionality.

Reviewers: raster, cedric, devilhorns, zmike

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10823
This commit is contained in:
Stefan Schmidt 2019-12-06 14:40:20 -05:00 committed by Christopher Michael
parent 899b11f4e4
commit fd6d03025a
8 changed files with 11 additions and 331 deletions

View File

@ -14,10 +14,11 @@ if [ "$DISTRO" != "" ] ; then
WAYLAND_LINUX_COPTS=" -Dwl=true -Ddrm=true -Dopengl=es-egl -Dwl-deprecated=true -Ddrm-deprecated=true"
# TODO:
# - No libelogind, Xgesture packages in fedora 30 repo
# - Enable C++ bindings: -Dbindings=luajit,cxx
# - No libelogind package in fedora 30 repo
# - RPM fusion repo for xine and libvlc
ENABLED_LINUX_COPTS=" -Dfb=true -Dsdl=true -Dbuffer=true -Dbuild-id=travis-build \
-Ddebug-threads=true -Dglib=true -Dg-mainloop=true -Dxpresent=true -Dxgesture=false -Dxinput22=true \
-Ddebug-threads=true -Dglib=true -Dg-mainloop=true -Dxpresent=true -Dxinput22=true \
-Devas-loaders-disabler=json -Decore-imf-loaders-disabler= -Demotion-loaders-disabler=libvlc,xine \
-Demotion-generic-loaders-disabler=vlc -Dharfbuzz=true -Dpixman=true -Dhyphen=true \
-Dvnc-server=true -Dbindings=luajit,cxx,mono -Delogind=false -Dinstall-eo-files=true -Dphysics=true"

View File

@ -150,12 +150,6 @@ option('xpresent',
description : 'X11 XPresent extension support in efl'
)
option('xgesture',
type : 'boolean',
value : false,
description : 'X11 XGesture support in efl'
)
option('xinput2',
type : 'boolean',
value : true,

View File

@ -2713,15 +2713,11 @@ struct _Ecore_X_Event_Gesture_Notify_Group
int group_id;
};
EAPI Eina_Bool ecore_x_gesture_supported(void);
EAPI Eina_Bool ecore_x_gesture_events_select(Ecore_X_Window win, Ecore_X_Gesture_Event_Mask mask);
EAPI Ecore_X_Gesture_Event_Mask ecore_x_gesture_events_selected_get(Ecore_X_Window win);
EAPI Eina_Bool ecore_x_gesture_event_grab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers);
EAPI Eina_Bool ecore_x_gesture_event_ungrab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers);
EINA_DEPRECATED EAPI Eina_Bool ecore_x_gesture_supported(void);
EINA_DEPRECATED EAPI Eina_Bool ecore_x_gesture_events_select(Ecore_X_Window win, Ecore_X_Gesture_Event_Mask mask);
EINA_DEPRECATED EAPI Ecore_X_Gesture_Event_Mask ecore_x_gesture_events_selected_get(Ecore_X_Window win);
EINA_DEPRECATED EAPI Eina_Bool ecore_x_gesture_event_grab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers);
EINA_DEPRECATED EAPI Eina_Bool ecore_x_gesture_event_ungrab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers);
EAPI void ecore_x_e_illume_indicator_state_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_State state);
EAPI Ecore_X_Illume_Indicator_State ecore_x_e_illume_indicator_state_get(Ecore_X_Window win);

View File

@ -61,9 +61,6 @@ static int _ecore_x_event_fixes_selection_id = 0;
#ifdef ECORE_XDAMAGE
static int _ecore_x_event_damage_id = 0;
#endif /* ifdef ECORE_XDAMAGE */
#ifdef ECORE_XGESTURE
static int _ecore_x_event_gesture_id = 0;
#endif /* ifdef ECORE_XGESTURE */
#ifdef ECORE_XKB
static int _ecore_x_event_xkb_id = 0;
#endif /* ifdef ECORE_XKB */
@ -408,10 +405,6 @@ _ecore_x_init2(void)
int damage_base = 0;
int damage_err_base = 0;
#endif /* ifdef ECORE_XDAMAGE */
#ifdef ECORE_XGESTURE
int gesture_base = 0;
int gesture_err_base = 0;
#endif /* ifdef ECORE_XGESTURE */
#ifdef ECORE_XKB
int xkb_base = 0;
#endif /* ifdef ECORE_XKB */
@ -470,12 +463,6 @@ _ecore_x_init2(void)
ECORE_X_EVENT_HANDLERS_GROW(damage_base, XDamageNumberEvents);
#endif /* ifdef ECORE_XDAMAGE */
#ifdef ECORE_XGESTURE
if (XGestureQueryExtension(_ecore_x_disp, &gesture_base, &gesture_err_base))
_ecore_x_event_gesture_id = gesture_base;
ECORE_X_EVENT_HANDLERS_GROW(gesture_base, GestureNumberEvents);
#endif /* ifdef ECORE_XGESTURE */
#ifdef ECORE_XKB
{
int dummy;
@ -577,20 +564,6 @@ _ecore_x_init2(void)
_ecore_x_event_handlers[_ecore_x_event_xkb_id] = _ecore_x_event_handle_xkb;
#endif /* ifdef ECORE_XKB */
#ifdef ECORE_XGESTURE
if (_ecore_x_event_gesture_id)
{
_ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyFlick] = _ecore_x_event_handle_gesture_notify_flick;
_ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyPan] = _ecore_x_event_handle_gesture_notify_pan;
_ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyPinchRotation] = _ecore_x_event_handle_gesture_notify_pinchrotation;
_ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyTap] = _ecore_x_event_handle_gesture_notify_tap;
_ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyTapNHold] = _ecore_x_event_handle_gesture_notify_tapnhold;
_ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyHold] = _ecore_x_event_handle_gesture_notify_hold;
_ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyGroup] = _ecore_x_event_handle_gesture_notify_group;
}
#endif /* ifdef ECORE_XGESTURE */
ECORE_X_EVENT_ANY = ecore_event_type_new();
ECORE_X_EVENT_MOUSE_IN = ecore_event_type_new();
ECORE_X_EVENT_MOUSE_OUT = ecore_event_type_new();
@ -691,7 +664,6 @@ _ecore_x_init2(void)
_ecore_x_present_init();
_ecore_x_dpms_init();
_ecore_x_randr_init();
_ecore_x_gesture_init();
_ecore_x_input_init();
_ecore_x_events_init();

View File

@ -2466,188 +2466,6 @@ _ecore_x_event_handle_generic_event(XEvent *event)
data);
}
#ifdef ECORE_XGESTURE
void
_ecore_x_event_handle_gesture_notify_flick(XEvent *xevent)
{
XGestureNotifyFlickEvent *xfe;
Ecore_X_Event_Gesture_Notify_Flick *e;
_ecore_x_last_event_mouse_move = EINA_FALSE;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
xfe = (XGestureNotifyFlickEvent *)xevent;
e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Flick));
if (!e)
return;
e->win = xfe->window;
e->time = xfe->time;
e->subtype = xfe->kind;
e->num_fingers = xfe->num_finger;
e->distance = xfe->distance;
e->duration = xfe->duration;
e->direction = xfe->direction;
e->angle = XFixedToDouble(xfe->angle);
ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_FLICK, e, NULL, NULL);
}
void
_ecore_x_event_handle_gesture_notify_pan(XEvent *xevent)
{
XGestureNotifyPanEvent *xpe;
Ecore_X_Event_Gesture_Notify_Pan *e;
_ecore_x_last_event_mouse_move = EINA_FALSE;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
xpe = (XGestureNotifyPanEvent *)xevent;
e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Pan));
if (!e)
return;
e->win = xpe->window;
e->time = xpe->time;
e->subtype = xpe->kind;
e->num_fingers = xpe->num_finger;
e->dx = xpe->dx;
e->dy = xpe->dy;
e->distance = xpe->distance;
e->duration = xpe->duration;
e->direction = xpe->direction;
ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_PAN, e, NULL, NULL);
}
void
_ecore_x_event_handle_gesture_notify_pinchrotation(XEvent *xevent)
{
XGestureNotifyPinchRotationEvent *xpre;
Ecore_X_Event_Gesture_Notify_PinchRotation *e;
_ecore_x_last_event_mouse_move = EINA_FALSE;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
xpre = (XGestureNotifyPinchRotationEvent *)xevent;
e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_PinchRotation));
if (!e)
return;
e->win = xpre->window;
e->time = xpre->time;
e->subtype = xpre->kind;
e->num_fingers = xpre->num_finger;
e->distance = xpre->distance;
e->cx = xpre->cx;
e->cy = xpre->cy;
e->zoom = XFixedToDouble(xpre->zoom);
e->angle = XFixedToDouble(xpre->angle);
ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_PINCHROTATION, e, NULL, NULL);
}
void
_ecore_x_event_handle_gesture_notify_tap(XEvent *xevent)
{
XGestureNotifyTapEvent *xte;
Ecore_X_Event_Gesture_Notify_Tap *e;
_ecore_x_last_event_mouse_move = EINA_FALSE;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
xte = (XGestureNotifyTapEvent *)xevent;
e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Tap));
if (!e)
return;
e->win = xte->window;
e->time = xte->time;
e->subtype = xte->kind;
e->num_fingers = xte->num_finger;
e->cx = xte->cx;
e->cy = xte->cy;
e->tap_repeat = xte->tap_repeat;
e->interval = xte->interval;
ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_TAP, e, NULL, NULL);
}
void
_ecore_x_event_handle_gesture_notify_tapnhold(XEvent *xevent)
{
XGestureNotifyTapNHoldEvent *xthe;
Ecore_X_Event_Gesture_Notify_TapNHold *e;
_ecore_x_last_event_mouse_move = EINA_FALSE;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
xthe = (XGestureNotifyTapNHoldEvent *)xevent;
e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_TapNHold));
if (!e)
return;
e->win = xthe->window;
e->time = xthe->time;
e->subtype = xthe->kind;
e->num_fingers = xthe->num_finger;
e->cx = xthe->cx;
e->cy = xthe->cy;
e->interval = xthe->interval;
e->hold_time = xthe->holdtime;
ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_TAPNHOLD, e, NULL, NULL);
}
void
_ecore_x_event_handle_gesture_notify_hold(XEvent *xevent)
{
XGestureNotifyHoldEvent *xhe;
Ecore_X_Event_Gesture_Notify_Hold *e;
_ecore_x_last_event_mouse_move = EINA_FALSE;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
xhe = (XGestureNotifyHoldEvent *)xevent;
e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Hold));
if (!e)
return;
e->win = xhe->window;
e->time = xhe->time;
e->subtype = xhe->kind;
e->num_fingers = xhe->num_finger;
e->cx = xhe->cx;
e->cy = xhe->cy;
e->hold_time = xhe->holdtime;
ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_HOLD, e, NULL, NULL);
}
void
_ecore_x_event_handle_gesture_notify_group(XEvent *xevent)
{
XGestureNotifyGroupEvent *xge;
Ecore_X_Event_Gesture_Notify_Group *e;
_ecore_x_last_event_mouse_move = EINA_FALSE;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
xge = (XGestureNotifyGroupEvent *)xevent;
e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Group));
if (!e)
return;
e->win = xge->window;
e->time = xge->time;
e->subtype = xge->kind;
e->num_groups = xge->num_group;
e->group_id = xge->groupid;
ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_GROUP, e, NULL, NULL);
}
#endif /* ifdef ECORE_XGESTURE */
#ifdef ECORE_XKB
void

View File

@ -4,84 +4,30 @@
#include "ecore_x_private.h"
static Eina_Bool _gesture_available = EINA_FALSE;
#ifdef ECORE_XGESTURE
static int _gesture_major, _gesture_minor, _gesture_patch;
int _gesture_version;
#endif /* ifdef ECORE_XGESTURE */
void
_ecore_x_gesture_init(void)
{
#ifdef ECORE_XGESTURE
_gesture_major = 0;
_gesture_minor = 0;
_gesture_patch = 0;
_gesture_version = 0;
if (XGestureQueryVersion(_ecore_x_disp, &_gesture_major, &_gesture_minor, &_gesture_patch))
{
_gesture_version = (_gesture_major << 16) | _gesture_minor;
_gesture_available = EINA_TRUE;
}
else
_gesture_available = EINA_FALSE;
#else /* ifdef ECORE_XGESTURE */
_gesture_available = EINA_FALSE;
#endif /* ifdef ECORE_XGESTURE */
}
/*
* @brief Query whether gesture is available or not.
*
* @return @c EINA_TRUE, if extension is available, @c EINA_FALSE otherwise.
*
* @deprecated
*/
EAPI Eina_Bool
ecore_x_gesture_supported(void)
{
return _gesture_available;
return EINA_FALSE;
}
EAPI Eina_Bool
ecore_x_gesture_events_select(Ecore_X_Window win,
Ecore_X_Gesture_Event_Mask mask)
{
#ifdef ECORE_XGESTURE
if (!_gesture_available)
return EINA_FALSE;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
XGestureSelectEvents(_ecore_x_disp, win, mask);
if (_ecore_xlib_sync) ecore_x_sync();
return EINA_TRUE;
#else /* ifdef ECORE_XGESTURE */
(void) win;
(void) mask;
return EINA_FALSE;
#endif /* ifdef ECORE_XGESTURE */
}
EAPI Ecore_X_Gesture_Event_Mask
ecore_x_gesture_events_selected_get(Ecore_X_Window win)
{
#ifdef ECORE_XGESTURE
Ecore_X_Gesture_Event_Mask mask;
if (!_gesture_available)
return ECORE_X_GESTURE_EVENT_MASK_NONE;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
if (GestureSuccess != XGestureGetSelectedEvents(_ecore_x_disp, win, (Mask *)&mask))
mask = ECORE_X_GESTURE_EVENT_MASK_NONE;
if (_ecore_xlib_sync) ecore_x_sync();
return mask;
#else /* ifdef ECORE_XGESTURE */
(void) win;
return ECORE_X_GESTURE_EVENT_MASK_NONE;
#endif /* ifdef ECORE_XGESTURE */
}
EAPI Eina_Bool
@ -89,21 +35,7 @@ ecore_x_gesture_event_grab(Ecore_X_Window win,
Ecore_X_Gesture_Event_Type type,
int num_fingers)
{
#ifdef ECORE_XGESTURE
Eina_Bool ret;
if (!_gesture_available)
return EINA_FALSE;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
ret = (GestureGrabSuccess == XGestureGrabEvent(_ecore_x_disp, win, type, num_fingers, CurrentTime));
if (_ecore_xlib_sync) ecore_x_sync();
return ret;
#else /* ifdef ECORE_XGESTURE */
(void) win;
(void) type;
(void) num_fingers;
return EINA_FALSE;
#endif /* ifdef ECORE_XGESTURE */
}
EAPI Eina_Bool
@ -111,21 +43,5 @@ ecore_x_gesture_event_ungrab(Ecore_X_Window win,
Ecore_X_Gesture_Event_Type type,
int num_fingers)
{
#ifdef ECORE_XGESTURE
Eina_Bool ret;
if (!_gesture_available)
return EINA_FALSE;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
ret = (GestureUngrabSuccess == XGestureUngrabEvent(_ecore_x_disp, win, type, num_fingers, CurrentTime));
if (_ecore_xlib_sync) ecore_x_sync();
return ret;
#else /* ifdef ECORE_XGESTURE */
(void) win;
(void) type;
(void) num_fingers;
return EINA_FALSE;
#endif /* ifdef ECORE_XGESTURE */
}

View File

@ -44,10 +44,6 @@
#ifdef ECORE_XDAMAGE
#include <X11/extensions/Xdamage.h>
#endif /* ifdef ECORE_XDAMAGE */
#ifdef ECORE_XGESTURE
#include <X11/extensions/gesture.h>
#include <X11/extensions/gestureproto.h>
#endif /* ifdef ECORE_XGESTURE */
#ifdef ECORE_XDPMS
#include <X11/extensions/dpms.h>
#endif /* ifdef ECORE_XDPMS */
@ -248,15 +244,6 @@ void _ecore_x_event_handle_client_message(XEvent *xevent);
void _ecore_x_event_handle_mapping_notify(XEvent *xevent);
void _ecore_x_event_handle_shape_change(XEvent *xevent);
void _ecore_x_event_handle_screensaver_notify(XEvent *xevent);
#ifdef ECORE_XGESTURE
void _ecore_x_event_handle_gesture_notify_flick(XEvent *xevent);
void _ecore_x_event_handle_gesture_notify_pan(XEvent *xevent);
void _ecore_x_event_handle_gesture_notify_pinchrotation(XEvent *xevent);
void _ecore_x_event_handle_gesture_notify_tap(XEvent *xevent);
void _ecore_x_event_handle_gesture_notify_tapnhold(XEvent *xevent);
void _ecore_x_event_handle_gesture_notify_hold(XEvent *xevent);
void _ecore_x_event_handle_gesture_notify_group(XEvent *xevent);
#endif /* ifdef ECORE_XGESTURE */
void _ecore_x_event_handle_sync_counter(XEvent *xevent);
void _ecore_x_event_handle_sync_alarm(XEvent *xevent);
#ifdef ECORE_XRANDR

View File

@ -61,10 +61,6 @@ if get_option('xpresent')
ecore_x_checks += [['Xpresent', 'Xpresent.h', 'Xpresent', 'XPresentQueryExtension']]
endif
if get_option('xgesture')
ecore_x_checks += [['Xgesture', 'gesture.h', 'Xgesture', 'XGestureQueryExtension']]
endif
if get_option('xinput2')
ecore_x_checks += [['Xi2', 'XInput2.h', 'Xi', 'XIQueryDevice']]
endif