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:
Peter Hutterer 2012-04-12 13:07:34 +10:00 committed by Emmanuele Bassi
parent 14b9cb4f7b
commit a66fbd258e
3 changed files with 16 additions and 16 deletions

View File

@ -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:

View File

@ -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;

View File

@ -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>]])])