Rename XINPUT_2_2 define to HAVE_XINPUT_2_2
authorPeter Hutterer <peter.hutterer@who-t.net>
Thu, 12 Apr 2012 03:07:34 +0000 (13:07 +1000)
committerEmmanuele Bassi <ebassi@linux.intel.com>
Thu, 12 Apr 2012 10:31:29 +0000 (11:31 +0100)
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

clutter/x11/clutter-device-manager-xi2.c
clutter/x11/clutter-input-device-xi2.c
configure.ac

index 6a310e6..03b0b45 100644 (file)
@@ -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:
index fb9f272..c2b0d18 100644 (file)
@@ -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;
index 977c058..abd8079 100644 (file)
@@ -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 <X11/extensions/XInput2.h>]])])