[libinput/f21] Don't detect multimedia keyboards as joysticks (#1194469)
Peter Hutterer
whot at fedoraproject.org
Thu Feb 26 07:31:06 UTC 2015
commit 2a328ce333abeab2cf8c525f29765fcbc8851de5
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Thu Feb 26 17:28:39 2015 +1000
Don't detect multimedia keyboards as joysticks (#1194469)
...re-careful-about-what-we-consider-a-joyst.patch | 74 ++++++++++++++++++++++
libinput.spec | 7 +-
2 files changed, 80 insertions(+), 1 deletion(-)
---
diff --git a/0001-evdev-Be-more-careful-about-what-we-consider-a-joyst.patch b/0001-evdev-Be-more-careful-about-what-we-consider-a-joyst.patch
new file mode 100644
index 0000000..e9a9dd0
--- /dev/null
+++ b/0001-evdev-Be-more-careful-about-what-we-consider-a-joyst.patch
@@ -0,0 +1,74 @@
+From 5f848ea35757dde7847d11464a7fec106a4a30f9 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Wed, 21 Jan 2015 12:04:48 +0100
+Subject: [PATCH libinput] evdev: Be more careful about what we consider a
+ joystick
+
+After switching my main workstation over to using xf86-input-libinput, I
+noticed that the multi-media keys like play/pause on my keyboard no longer
+worked.
+
+It turns out that the second hid interface on my keyboard which has the
+multimedia-keys, also declares having: BTN_BASE6 and BTN_MODE which both
+fell into the range we were using to test for something being a joystick.
+
+The commit makes our joystick test mode strict, restoring functionality
+of the multi-media keys on the keyboard in question.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+(cherry picked from commit 0afd0b792fb9c244442ac4532ceeaa9565dd1928)
+---
+ src/evdev.c | 25 ++++++++++++++++---------
+ 1 file changed, 16 insertions(+), 9 deletions(-)
+
+diff --git a/src/evdev.c b/src/evdev.c
+index dce035a..7ea7cd6 100644
+--- a/src/evdev.c
++++ b/src/evdev.c
+@@ -1283,7 +1283,7 @@ evdev_configure_device(struct evdev_device *device)
+ struct libevdev *evdev = device->evdev;
+ const struct input_absinfo *absinfo;
+ int has_abs, has_rel, has_mt;
+- int has_button, has_keyboard, has_touch;
++ int has_button, has_keyboard, has_touch, has_joystick_button;
+ struct mt_slot *slots;
+ int num_slots;
+ int active_slot;
+@@ -1295,17 +1295,24 @@ evdev_configure_device(struct evdev_device *device)
+ has_abs = 0;
+ has_mt = 0;
+ has_button = 0;
++ has_joystick_button = 0;
+ has_keyboard = 0;
+ has_touch = 0;
+
+- for (i = BTN_JOYSTICK; i < BTN_DIGI; i++) {
+- if (libevdev_has_event_code(evdev, EV_KEY, i)) {
+- log_info(libinput,
+- "input device '%s', %s is a joystick, ignoring\n",
+- device->devname, devnode);
+- return -1;
+- }
+- }
++ for (i = BTN_JOYSTICK; i <= BTN_PINKIE; i++)
++ if (libevdev_has_event_code(evdev, EV_KEY, i))
++ has_joystick_button = 1;
++
++ for (i = BTN_GAMEPAD; i <= BTN_TR2; i++)
++ if (libevdev_has_event_code(evdev, EV_KEY, i))
++ has_joystick_button = 1;
++
++ if (has_joystick_button) {
++ log_info(libinput,
++ "input device '%s', %s is a joystick, ignoring\n",
++ device->devname, devnode);
++ return -1;
++ }
+
+ if (libevdev_has_event_type(evdev, EV_ABS)) {
+
+--
+2.1.0
+
diff --git a/libinput.spec b/libinput.spec
index 8b58d10..8583870 100644
--- a/libinput.spec
+++ b/libinput.spec
@@ -3,7 +3,7 @@
Name: libinput
Version: 0.7.0
-Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
+Release: 3%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
Summary: Input device library
License: MIT
@@ -16,6 +16,8 @@ Source2: commitid
Source0: http://www.freedesktop.org/software/libinput/libinput-%{version}.tar.xz
%endif
+Patch01: 0001-evdev-Be-more-careful-about-what-we-consider-a-joyst.patch
+
BuildRequires: git
BuildRequires: autoconf automake libtool pkgconfig
BuildRequires: libevdev-devel
@@ -80,6 +82,9 @@ find $RPM_BUILD_ROOT -name '*.la' -delete
%changelog
+* Thu Feb 26 2015 Peter Hutterer <peter.hutterer at redhat.com> 0.7.0-3.20141211git58abea394
+- Don't detect multimedia keyboards as joysticks (#1194469)
+
* Thu Dec 11 2014 Peter Hutterer <peter.hutterer at redhat.com> 0.7.0-2.20141211git58abea394
- git snapshot, fixes a crasher and fd confusion after suspending a device
More information about the scm-commits
mailing list