From b32fd49ca94e8974b001d7ce647d451f84867719 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 12 Apr 2012 13:17:26 +1000 Subject: [PATCH] Fix misnamed define to enable XI 2.2 support (#809864) --- ...XINPUT_2_2-define-to-HAVE_XINPUT_2_2.patch | 159 ++++++++++++++++++ clutter.spec | 7 +- 2 files changed, 165 insertions(+), 1 deletion(-) create mode 100644 0001-Rename-XINPUT_2_2-define-to-HAVE_XINPUT_2_2.patch diff --git a/0001-Rename-XINPUT_2_2-define-to-HAVE_XINPUT_2_2.patch b/0001-Rename-XINPUT_2_2-define-to-HAVE_XINPUT_2_2.patch new file mode 100644 index 0000000..fa54f4c --- /dev/null +++ b/0001-Rename-XINPUT_2_2-define-to-HAVE_XINPUT_2_2.patch @@ -0,0 +1,159 @@ +From 66c4d6214e7354749d396cff059b0d7a9b94e48c 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 +--- + 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 aad69c7..52897a0 100644 +--- a/clutter/x11/clutter-device-manager-xi2.c ++++ b/clutter/x11/clutter-device-manager-xi2.c +@@ -154,7 +154,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; +@@ -178,7 +178,7 @@ translate_device_classes (Display *xdisplay, + scroll_info->increment); + } + break; +-#endif /* XINPUT_2_2 */ ++#endif /* HAVE_XINPUT_2_2 */ + + default: + break; +@@ -192,7 +192,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++) +@@ -486,11 +486,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; + +@@ -858,10 +858,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: +@@ -910,10 +910,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); +@@ -990,10 +990,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, +@@ -1006,7 +1006,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: + { +@@ -1114,7 +1114,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 bd46aa8..83f0018 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 ]])]) +-- +1.7.10 + diff --git a/clutter.spec b/clutter.spec index 057929d..63450c3 100644 --- a/clutter.spec +++ b/clutter.spec @@ -1,6 +1,6 @@ Name: clutter Version: 1.10.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Open Source software library for creating rich graphical user interfaces Group: Development/Libraries @@ -10,6 +10,7 @@ Source0: http://www.clutter-project.org/sources/%{name}/1.10/%{name}-%{ver # upstream fix Patch01: 0001-table-layout-Fix-xy-_expand.patch +Patch02: 0001-Rename-XINPUT_2_2-define-to-HAVE_XINPUT_2_2.patch BuildRequires: glib2-devel mesa-libGL-devel pkgconfig pango-devel BuildRequires: cairo-gobject-devel gdk-pixbuf2-devel atk-devel @@ -63,6 +64,7 @@ This package contains documentation for clutter. %prep %setup -q %patch01 -p1 +%patch02 -p1 %build (if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; CONFIGFLAGS=--enable-gtk-doc; fi; @@ -107,6 +109,9 @@ find %{buildroot} -name '*.la' -exec rm -f {} ';' %{_datadir}/gtk-doc/html/cally %changelog +* Thu Apr 12 2012 Peter Hutterer 1.10.0-5 +- Fix misnamed define to enable XI 2.2 support (#809864) + * Fri Apr 06 2012 Zeeshan Ali - 1.10.0-4 - Include layout fix (Needed by gnome-boxes at least).