[arch-commits] Commit in xf86-input-evdev/trunk (Logitech_G600.diff PKGBUILD)

Andreas Radke andyrtr at archlinux.org
Mon Jan 4 11:50:12 UTC 2016


    Date: Monday, January 4, 2016 @ 12:50:12
  Author: andyrtr
Revision: 257504

upgpkg: xf86-input-evdev 2.10.0-3

add upstream fix for FS#46994

Added:
  xf86-input-evdev/trunk/Logitech_G600.diff
Modified:
  xf86-input-evdev/trunk/PKGBUILD

--------------------+
 Logitech_G600.diff |   52 +++++++++++++++++++++++++++++++++++++++++++++++++++
 PKGBUILD           |   14 ++++++++++---
 2 files changed, 63 insertions(+), 3 deletions(-)

Added: Logitech_G600.diff
===================================================================
--- Logitech_G600.diff	                        (rev 0)
+++ Logitech_G600.diff	2016-01-04 11:50:12 UTC (rev 257504)
@@ -0,0 +1,52 @@
+From d7e61a7074b802b49f57549530b289bbaa0a4855 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer at who-t.net>
+Date: Tue, 10 Nov 2015 14:35:51 +1000
+Subject: Only map x and y to axes 0 and 1
+
+The Logitech G600 has one device with all axes north of ABS_MISC. The current
+code assigns ABS_MISC as first axis to map to axis 0, i.e. x. On button press,
+one node sends the BTN_LEFT but the other node sends an ABS_MISC with a 1 0
+value. ABS_MISC is mapped to axis 0, this moves the pointer to (0, y) on
+every button click.
+
+Avoid this by simply mapping any axis other than x/y to at least axis 3, and
+make sure we only override the MT 0/1 axes when we actually have MT axes.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=92856
+
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+Reviewed-by: Keith Packard <keithp at keithp.com>
+
+diff --git a/src/evdev.c b/src/evdev.c
+index 17d9d61..3176660 100644
+--- a/src/evdev.c
++++ b/src/evdev.c
+@@ -1377,7 +1377,7 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int num_scroll_axes)
+     }
+     atoms = malloc((pEvdev->num_vals + num_mt_axes) * sizeof(Atom));
+ 
+-    i = 0;
++    i = 2;
+     for (axis = ABS_X; i < MAX_VALUATORS && axis <= ABS_MAX; axis++) {
+         int j;
+         pEvdev->abs_axis_map[axis] = -1;
+@@ -1385,9 +1385,14 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int num_scroll_axes)
+             is_blacklisted_axis(axis))
+             continue;
+ 
+-        mapping = i;
++        if (axis == ABS_X)
++            mapping = 0;
++        else if (axis == ABS_Y)
++            mapping = 1;
++        else
++            mapping = i;
+ 
+-        for (j = 0; j < ArrayLength(mt_axis_mappings); j++)
++        for (j = 0; !pEvdev->fake_mt && j < ArrayLength(mt_axis_mappings); j++)
+         {
+             if (mt_axis_mappings[j].code == axis)
+                 mt_axis_mappings[j].mapping = mapping;
+-- 
+cgit v0.10.2
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2016-01-04 11:24:09 UTC (rev 257503)
+++ PKGBUILD	2016-01-04 11:50:12 UTC (rev 257504)
@@ -4,7 +4,7 @@
 
 pkgname=xf86-input-evdev
 pkgver=2.10.0
-pkgrel=2
+pkgrel=3
 pkgdesc="X.org evdev input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
@@ -15,11 +15,19 @@
 conflicts=('xorg-server<1.18.0' 'X-ABI-XINPUT_VERSION<22' 'X-ABI-XINPUT_VERSION>=23')
 options=('!makeflags')
 groups=('xorg-drivers' 'xorg')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2{,.sig})
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2{,.sig}
+        Logitech_G600.diff)
 sha256sums=('d097298eb07b7a9edf4493b5c3c058041458ca52c8c62dbd4f40b84c5086d117'
-            'SKIP')
+            'SKIP'
+            '9d8aef7fde6e24a02f6344011c672b6a7fec8604012aea81ac00ba9c25166c41')
 validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer (Who-T) <office at who-t.net>
 
+prepare() {
+  cd ${pkgname}-${pkgver}
+  # FS#46994 - https://bugs.freedesktop.org/show_bug.cgi?id=92856
+  patch -Np1 -i ${srcdir}/Logitech_G600.diff
+}
+
 build() {
   cd ${pkgname}-${pkgver}
   ./configure --prefix=/usr



More information about the arch-commits mailing list