From a66fbd258e4011f059df4e3234fe9efe58f15320 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 12 Apr 2012 13:07:34 +1000 Subject: [PATCH] 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 https://bugzilla.gnome.org/show_bug.cgi?id=673961 --- clutter/x11/clutter-device-manager-xi2.c | 26 +++++++++++++------------- clutter/x11/clutter-input-device-xi2.c | 4 ++-- configure.ac | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/clutter/x11/clutter-device-manager-xi2.c b/clutter/x11/clutter-device-manager-xi2.c index 6a310e6..03b0b45 100644 --- a/clutter/x11/clutter-device-manager-xi2.c +++ b/clutter/x11/clutter-device-manager-xi2.c @@ -155,7 +155,7 @@ translate_device_classes (Display *xdisplay, (XIValuatorClassInfo *) class_info); break; -#ifdef XINPUT_2_2 +#ifdef HAVE_XINPUT_2_2 case XIScrollClass: { XIScrollClassInfo *scroll_info = (XIScrollClassInfo *) class_info; @@ -179,7 +179,7 @@ translate_device_classes (Display *xdisplay, scroll_info->increment); } break; -#endif /* XINPUT_2_2 */ +#endif /* HAVE_XINPUT_2_2 */ default: break; @@ -193,7 +193,7 @@ is_touch_device (XIAnyClassInfo **classes, ClutterInputDeviceType *device_type, guint *n_touch_points) { -#ifdef XINPUT_2_2 +#ifdef HAVE_XINPUT_2_2 guint i; for (i = 0; i < n_classes; i++) @@ -484,11 +484,11 @@ get_event_stage (ClutterEventTranslator *translator, case XI_ButtonPress: case XI_ButtonRelease: case XI_Motion: -#ifdef XINPUT_2_2 +#ifdef HAVE_XINPUT_2_2 case XI_TouchBegin: case XI_TouchUpdate: case XI_TouchEnd: -#endif /* XINPUT_2_2 */ +#endif /* HAVE_XINPUT_2_2 */ { XIDeviceEvent *xev = (XIDeviceEvent *) xi_event; @@ -856,10 +856,10 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator, stage_x11, &xev->valuators); -#ifdef XINPUT_2_2 +#ifdef HAVE_XINPUT_2_2 if (xev->flags & XIPointerEmulated) _clutter_event_set_pointer_emulated (event, TRUE); -#endif /* XINPUT_2_2 */ +#endif /* HAVE_XINPUT_2_2 */ break; default: @@ -908,10 +908,10 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator, event->button.y, event->button.axes != NULL ? "yes" : "no"); -#ifdef XINPUT_2_2 +#ifdef HAVE_XINPUT_2_2 if (xev->flags & XIPointerEmulated) _clutter_event_set_pointer_emulated (event, TRUE); -#endif /* XINPUT_2_2 */ +#endif /* HAVE_XINPUT_2_2 */ if (xi_event->evtype == XI_ButtonPress) _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) _clutter_input_device_set_stage (source_device, device->stage); -#ifdef XINPUT_2_2 +#ifdef HAVE_XINPUT_2_2 if (xev->flags & XIPointerEmulated) _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)", (unsigned int) stage_x11->xwin, @@ -1004,7 +1004,7 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator, } break; -#ifdef XINPUT_2_2 +#ifdef HAVE_XINPUT_2_2 case XI_TouchBegin: case XI_TouchEnd: { @@ -1112,7 +1112,7 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator, retval = CLUTTER_TRANSLATE_QUEUE; } break; -#endif /* XINPUT_2_2 */ +#endif /* HAVE_XINPUT_2_2 */ case XI_Enter: case XI_Leave: diff --git a/clutter/x11/clutter-input-device-xi2.c b/clutter/x11/clutter-input-device-xi2.c index fb9f272..c2b0d18 100644 --- a/clutter/x11/clutter-input-device-xi2.c +++ b/clutter/x11/clutter-input-device-xi2.c @@ -92,7 +92,7 @@ clutter_input_device_xi2_select_stage_events (ClutterInputDevice *device, if (event_mask & LeaveWindowMask) 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 */ 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_TouchEnd); } -#endif /* XINPUT_2_2 */ +#endif /* HAVE_XINPUT_2_2 */ xi_event_mask.deviceid = device_xi2->device_id; xi_event_mask.mask = mask; diff --git a/configure.ac b/configure.ac index 977c058..abd8079 100644 --- a/configure.ac +++ b/configure.ac @@ -724,7 +724,7 @@ AS_IF([test "x$SUPPORT_X11" = "x1"], AC_CHECK_MEMBER([XIScrollClassInfo.number], [ 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], [[#include ]])]) -- 2.7.4