Rename XINPUT_2_2 define to HAVE_XINPUT_2_2
configure.ac defines XINPUT_2_2 if XI 2.2 support was found. The code expects XINPUT_2_2 in the device manager, but HAVE_XINPUT_2_2 in the x11 backend. On newer X servers, the latter causes a BadValue when XIQueryDevice sends a different major/minor than gdk's device manager (gnome-control-center). Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> https://bugzilla.gnome.org/show_bug.cgi?id=673961
This commit is contained in:
parent
14b9cb4f7b
commit
a66fbd258e
@ -155,7 +155,7 @@ translate_device_classes (Display *xdisplay,
|
|||||||
(XIValuatorClassInfo *) class_info);
|
(XIValuatorClassInfo *) class_info);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef XINPUT_2_2
|
#ifdef HAVE_XINPUT_2_2
|
||||||
case XIScrollClass:
|
case XIScrollClass:
|
||||||
{
|
{
|
||||||
XIScrollClassInfo *scroll_info = (XIScrollClassInfo *) class_info;
|
XIScrollClassInfo *scroll_info = (XIScrollClassInfo *) class_info;
|
||||||
@ -179,7 +179,7 @@ translate_device_classes (Display *xdisplay,
|
|||||||
scroll_info->increment);
|
scroll_info->increment);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif /* XINPUT_2_2 */
|
#endif /* HAVE_XINPUT_2_2 */
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -193,7 +193,7 @@ is_touch_device (XIAnyClassInfo **classes,
|
|||||||
ClutterInputDeviceType *device_type,
|
ClutterInputDeviceType *device_type,
|
||||||
guint *n_touch_points)
|
guint *n_touch_points)
|
||||||
{
|
{
|
||||||
#ifdef XINPUT_2_2
|
#ifdef HAVE_XINPUT_2_2
|
||||||
guint i;
|
guint i;
|
||||||
|
|
||||||
for (i = 0; i < n_classes; i++)
|
for (i = 0; i < n_classes; i++)
|
||||||
@ -484,11 +484,11 @@ get_event_stage (ClutterEventTranslator *translator,
|
|||||||
case XI_ButtonPress:
|
case XI_ButtonPress:
|
||||||
case XI_ButtonRelease:
|
case XI_ButtonRelease:
|
||||||
case XI_Motion:
|
case XI_Motion:
|
||||||
#ifdef XINPUT_2_2
|
#ifdef HAVE_XINPUT_2_2
|
||||||
case XI_TouchBegin:
|
case XI_TouchBegin:
|
||||||
case XI_TouchUpdate:
|
case XI_TouchUpdate:
|
||||||
case XI_TouchEnd:
|
case XI_TouchEnd:
|
||||||
#endif /* XINPUT_2_2 */
|
#endif /* HAVE_XINPUT_2_2 */
|
||||||
{
|
{
|
||||||
XIDeviceEvent *xev = (XIDeviceEvent *) xi_event;
|
XIDeviceEvent *xev = (XIDeviceEvent *) xi_event;
|
||||||
|
|
||||||
@ -856,10 +856,10 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
|||||||
stage_x11,
|
stage_x11,
|
||||||
&xev->valuators);
|
&xev->valuators);
|
||||||
|
|
||||||
#ifdef XINPUT_2_2
|
#ifdef HAVE_XINPUT_2_2
|
||||||
if (xev->flags & XIPointerEmulated)
|
if (xev->flags & XIPointerEmulated)
|
||||||
_clutter_event_set_pointer_emulated (event, TRUE);
|
_clutter_event_set_pointer_emulated (event, TRUE);
|
||||||
#endif /* XINPUT_2_2 */
|
#endif /* HAVE_XINPUT_2_2 */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -908,10 +908,10 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
|||||||
event->button.y,
|
event->button.y,
|
||||||
event->button.axes != NULL ? "yes" : "no");
|
event->button.axes != NULL ? "yes" : "no");
|
||||||
|
|
||||||
#ifdef XINPUT_2_2
|
#ifdef HAVE_XINPUT_2_2
|
||||||
if (xev->flags & XIPointerEmulated)
|
if (xev->flags & XIPointerEmulated)
|
||||||
_clutter_event_set_pointer_emulated (event, TRUE);
|
_clutter_event_set_pointer_emulated (event, TRUE);
|
||||||
#endif /* XINPUT_2_2 */
|
#endif /* HAVE_XINPUT_2_2 */
|
||||||
|
|
||||||
if (xi_event->evtype == XI_ButtonPress)
|
if (xi_event->evtype == XI_ButtonPress)
|
||||||
_clutter_stage_x11_set_user_time (stage_x11, event->button.time);
|
_clutter_stage_x11_set_user_time (stage_x11, event->button.time);
|
||||||
@ -988,10 +988,10 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
|||||||
if (source_device != NULL && device->stage != NULL)
|
if (source_device != NULL && device->stage != NULL)
|
||||||
_clutter_input_device_set_stage (source_device, device->stage);
|
_clutter_input_device_set_stage (source_device, device->stage);
|
||||||
|
|
||||||
#ifdef XINPUT_2_2
|
#ifdef HAVE_XINPUT_2_2
|
||||||
if (xev->flags & XIPointerEmulated)
|
if (xev->flags & XIPointerEmulated)
|
||||||
_clutter_event_set_pointer_emulated (event, TRUE);
|
_clutter_event_set_pointer_emulated (event, TRUE);
|
||||||
#endif /* XINPUT_2_2 */
|
#endif /* HAVE_XINPUT_2_2 */
|
||||||
|
|
||||||
CLUTTER_NOTE (EVENT, "motion: win:0x%x device:%s (x:%.2f, y:%.2f, axes:%s)",
|
CLUTTER_NOTE (EVENT, "motion: win:0x%x device:%s (x:%.2f, y:%.2f, axes:%s)",
|
||||||
(unsigned int) stage_x11->xwin,
|
(unsigned int) stage_x11->xwin,
|
||||||
@ -1004,7 +1004,7 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef XINPUT_2_2
|
#ifdef HAVE_XINPUT_2_2
|
||||||
case XI_TouchBegin:
|
case XI_TouchBegin:
|
||||||
case XI_TouchEnd:
|
case XI_TouchEnd:
|
||||||
{
|
{
|
||||||
@ -1112,7 +1112,7 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
|||||||
retval = CLUTTER_TRANSLATE_QUEUE;
|
retval = CLUTTER_TRANSLATE_QUEUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif /* XINPUT_2_2 */
|
#endif /* HAVE_XINPUT_2_2 */
|
||||||
|
|
||||||
case XI_Enter:
|
case XI_Enter:
|
||||||
case XI_Leave:
|
case XI_Leave:
|
||||||
|
@ -92,7 +92,7 @@ clutter_input_device_xi2_select_stage_events (ClutterInputDevice *device,
|
|||||||
if (event_mask & LeaveWindowMask)
|
if (event_mask & LeaveWindowMask)
|
||||||
XISetMask (mask, XI_Leave);
|
XISetMask (mask, XI_Leave);
|
||||||
|
|
||||||
#ifdef XINPUT_2_2
|
#ifdef HAVE_XINPUT_2_2
|
||||||
/* enable touch event support if we're running on XInput 2.2 */
|
/* enable touch event support if we're running on XInput 2.2 */
|
||||||
if (backend_x11->xi_minor >= 2)
|
if (backend_x11->xi_minor >= 2)
|
||||||
{
|
{
|
||||||
@ -100,7 +100,7 @@ clutter_input_device_xi2_select_stage_events (ClutterInputDevice *device,
|
|||||||
XISetMask (mask, XI_TouchUpdate);
|
XISetMask (mask, XI_TouchUpdate);
|
||||||
XISetMask (mask, XI_TouchEnd);
|
XISetMask (mask, XI_TouchEnd);
|
||||||
}
|
}
|
||||||
#endif /* XINPUT_2_2 */
|
#endif /* HAVE_XINPUT_2_2 */
|
||||||
|
|
||||||
xi_event_mask.deviceid = device_xi2->device_id;
|
xi_event_mask.deviceid = device_xi2->device_id;
|
||||||
xi_event_mask.mask = mask;
|
xi_event_mask.mask = mask;
|
||||||
|
@ -724,7 +724,7 @@ AS_IF([test "x$SUPPORT_X11" = "x1"],
|
|||||||
AC_CHECK_MEMBER([XIScrollClassInfo.number],
|
AC_CHECK_MEMBER([XIScrollClassInfo.number],
|
||||||
[
|
[
|
||||||
have_xinput_2_2=yes
|
have_xinput_2_2=yes
|
||||||
AC_DEFINE([XINPUT_2_2], [1], [Define to 1 if XInput 2.2 is available])
|
AC_DEFINE([HAVE_XINPUT_2_2], [1], [Define to 1 if XInput 2.2 is available])
|
||||||
],
|
],
|
||||||
[have_xinput_2_2=no],
|
[have_xinput_2_2=no],
|
||||||
[[#include <X11/extensions/XInput2.h>]])])
|
[[#include <X11/extensions/XInput2.h>]])])
|
||||||
|
Loading…
Reference in New Issue
Block a user