[packages/clutter] - added libinput patch (update for libinput 0.8.x from Fedora)

qboosh qboosh at pld-linux.org
Mon Jan 26 15:56:06 CET 2015


commit cf6304f11959c95103ab3a66a32dcb700c031440
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Mon Jan 26 15:57:51 2015 +0100

    - added libinput patch (update for libinput 0.8.x from Fedora)

 clutter-libinput.patch | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++
 clutter.spec           |  8 +++--
 2 files changed, 97 insertions(+), 3 deletions(-)
---
diff --git a/clutter.spec b/clutter.spec
index ef65fdc..2671934 100644
--- a/clutter.spec
+++ b/clutter.spec
@@ -16,6 +16,7 @@ Source0:	http://ftp.gnome.org/pub/GNOME/sources/clutter/1.20/%{name}-%{version}.
 # Source0-md5:	a8a33a57a944c6d7c7c013ce9aa3222b
 Patch0:		gtkdoc.patch
 Patch1:		missing.patch
+Patch2:		%{name}-libinput.patch
 URL:		http://www.clutter-project.org/
 BuildRequires:	OpenGL-GLX-devel
 BuildRequires:	atk-devel >= 1:2.5.3
@@ -34,7 +35,7 @@ BuildRequires:	gtk+3-devel >= 3.4.0
 BuildRequires:	gtk-doc >= 1.20
 BuildRequires:	json-glib-devel >= 0.12.0
 %{?with_evdev:BuildRequires:	libevdev-devel}
-%{?with_evdev:BuildRequires:	libinput-devel >= 0.4.0}
+%{?with_evdev:BuildRequires:	libinput-devel >= 0.8.0}
 BuildRequires:	libtool >= 2:2.2.6
 BuildRequires:	libxslt-progs
 BuildRequires:	pango-devel >= 1:1.30
@@ -63,7 +64,7 @@ Requires:	cogl >= 1.18.0
 Requires:	glib2 >= 1:2.37.3
 Requires:	gtk+3 >= 3.4.0
 Requires:	json-glib >= 0.12.0
-%{?with_evdev:Requires:	libinput >= 0.4.0}
+%{?with_evdev:Requires:	libinput >= 0.8.0}
 Requires:	pango >= 1:1.30
 %{?with_evdev:Requires:	udev-libs >= 1:136}
 %{?with_evdev:Provides:	clutter(evdev) = %{version}-%{release}}
@@ -106,7 +107,7 @@ Requires:	gdk-pixbuf2-devel >= 2.0
 Requires:	glib2-devel >= 1:2.37.3
 Requires:	gtk+3-devel >= 3.4.0
 Requires:	json-glib-devel >= 0.12.0
-%{?with_evdev:Requires:	libinput-devel >= 0.4.0}
+%{?with_evdev:Requires:	libinput-devel >= 0.8.0}
 Requires:	pango-devel >= 1:1.30
 %{?with_evdev:Requires:	udev-devel >= 1:136}
 %{?with_wayland:Requires: wayland-devel}
@@ -160,6 +161,7 @@ Dokumentacja API clutter.
 %setup -q
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
 
 %build
 %{__gtkdocize}
diff --git a/clutter-libinput.patch b/clutter-libinput.patch
new file mode 100644
index 0000000..5b956bf
--- /dev/null
+++ b/clutter-libinput.patch
@@ -0,0 +1,92 @@
+From 358039182478140c8dcb7bcd077fff855d836bac Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer at who-t.net>
+Date: Fri, 16 Jan 2015 01:03:52 +0100
+Subject: [PATCH] evdev: use libinput's new merged scroll events
+
+libinput's API changed from separate scroll events for vert/horiz scrolling to
+a single event that contains both axes if they changed.
+
+Updated by Armin K. to use the discrete axis value for wheel events as done
+in Weston.
+---
+ clutter/evdev/clutter-device-manager-evdev.c | 40 +++++++++++++++++++---------
+ configure.ac                                 |  2 +-
+ 2 files changed, 28 insertions(+), 14 deletions(-)
+
+diff --git a/clutter/evdev/clutter-device-manager-evdev.c b/clutter/evdev/clutter-device-manager-evdev.c
+index 7b48481..2b3828a 100644
+--- a/clutter/evdev/clutter-device-manager-evdev.c
++++ b/clutter/evdev/clutter-device-manager-evdev.c
+@@ -1191,29 +1191,43 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
+ 
+     case LIBINPUT_EVENT_POINTER_AXIS:
+       {
+-        gdouble value, dx = 0.0, dy = 0.0;
++        gdouble dx = 0.0, dy = 0.0;
+         guint32 time;
++        gboolean wheel = FALSE;
+         enum libinput_pointer_axis axis;
++        enum libinput_pointer_axis_source source;
+         struct libinput_event_pointer *axis_event =
+           libinput_event_get_pointer_event (event);
++
+         device = libinput_device_get_user_data (libinput_device);
+ 
+         time = libinput_event_pointer_get_time (axis_event);
+-        value = libinput_event_pointer_get_axis_value (axis_event);
+-        axis = libinput_event_pointer_get_axis (axis_event);
++        source = libinput_event_pointer_get_axis_source (axis_event);
+ 
+-        switch (axis)
+-          {
+-          case LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL:
+-            dx = 0;
+-            dy = value;
+-            break;
++        /* libinput < 0.8 sent wheel click events with value 10. Since 0.8
++           the value is the angle of the click in degrees. To keep
++           backwards-compat with existing clients, we just send multiples of
++           the click count. */
++
++        if (source == LIBINPUT_POINTER_AXIS_SOURCE_WHEEL)
++            wheel = TRUE;
+ 
+-          case LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL:
+-            dx = value;
+-            dy = 0;
+-            break;
++        axis = LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL;
++        if (libinput_event_pointer_has_axis (axis_event, axis))
++          {
++            if (wheel)
++              dy = 10 * libinput_event_pointer_get_axis_value_discrete (axis_event, axis);
++            else
++              dy = libinput_event_pointer_get_axis_value (axis_event, axis);
++          }
+ 
++        axis = LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL;
++        if (libinput_event_pointer_has_axis (axis_event, axis))
++          {
++            if (wheel)
++              dx = 10 * libinput_event_pointer_get_axis_value_discrete (axis_event, axis);
++            else
++              dx = libinput_event_pointer_get_axis_value (axis_event, axis);
+           }
+ 
+         notify_scroll (device, time, dx, dy);
+diff --git a/configure.ac b/configure.ac
+index 0a9a580..2a47744 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -146,7 +146,7 @@ m4_define([uprof_req_version],          [0.3])
+ m4_define([gtk_doc_req_version],        [1.20])
+ m4_define([xcomposite_req_version],     [0.4])
+ m4_define([gdk_req_version],            [3.3.18])
+-m4_define([libinput_req_version],       [0.4.0])
++m4_define([libinput_req_version],       [0.8.0])
+ m4_define([libudev_req_version],        [136])
+ 
+ AC_SUBST([GLIB_REQ_VERSION],       [glib_req_version])
+-- 
+2.2.2
+
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/clutter.git/commitdiff/cf6304f11959c95103ab3a66a32dcb700c031440



More information about the pld-cvs-commit mailing list