[clutter] Update to libinput 0.8
Peter Hutterer
whot at fedoraproject.org
Mon Jan 19 01:10:41 UTC 2015
commit 51fac40b698ecc71da46efa61b3eebdddd41816f
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Fri Jan 16 15:11:40 2015 +1000
Update to libinput 0.8
...v-use-libinput-s-new-merged-scroll-events.patch | 92 ++++++++++++++++++++
clutter.spec | 10 ++-
2 files changed, 100 insertions(+), 2 deletions(-)
---
diff --git a/0001-evdev-use-libinput-s-new-merged-scroll-events.patch b/0001-evdev-use-libinput-s-new-merged-scroll-events.patch
new file mode 100644
index 0000000..5b956bf
--- /dev/null
+++ b/0001-evdev-use-libinput-s-new-merged-scroll-events.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
+
diff --git a/clutter.spec b/clutter.spec
index 86438d2..bba9087 100644
--- a/clutter.spec
+++ b/clutter.spec
@@ -8,7 +8,7 @@
Name: clutter
Version: 1.21.2
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Open Source software library for creating rich graphical user interfaces
Group: Development/Libraries
@@ -16,13 +16,15 @@ License: LGPLv2+
URL: http://www.clutter-project.org/
Source0: http://download.gnome.org/sources/clutter/1.21/clutter-%{version}.tar.xz
+Patch01: 0001-evdev-use-libinput-s-new-merged-scroll-events.patch
+
BuildRequires: glib2-devel mesa-libGL-devel pkgconfig pango-devel
BuildRequires: cairo-gobject-devel gdk-pixbuf2-devel atk-devel
BuildRequires: cogl-devel >= 1.15.1
BuildRequires: gobject-introspection-devel >= 0.9.6
BuildRequires: gtk3-devel
BuildRequires: json-glib-devel >= 0.12.0
-BuildRequires: libinput-devel
+BuildRequires: libinput-devel >= 0.8
BuildRequires: libXcomposite-devel
BuildRequires: libXdamage-devel
BuildRequires: libXi-devel
@@ -79,6 +81,7 @@ the functionality of the installed clutter package.
%prep
%setup -q
+%patch01 -p1
%build
%configure \
@@ -133,6 +136,9 @@ make check %{?_smp_mflags} V=1
%endif
%changelog
+* Mon Jan 19 2015 Peter Hutterer <peter.hutterer at redhat.com> 1.21.2-2
+- Update to libinput 0.8
+
* Thu Dec 18 2014 Richard Hughes <rhughes at redhat.com> - 1.21.2-1
- Update to 1.21.2
More information about the scm-commits
mailing list