SHA256
1
0
forked from pool/libinput

- Update to new upstream release 1.10.0

OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/libinput?expand=0&rev=148
This commit is contained in:
Jan Engelhardt 2018-02-13 09:04:38 +00:00 committed by Git OBS Bridge
parent ccf5918e1e
commit c352d8b067
7 changed files with 30 additions and 216 deletions

View File

@ -1,211 +0,0 @@
From 3c84788c376a50c0e3453855712d764f02494f17 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed, 31 Jan 2018 16:18:15 +1000
Subject: [PATCH libinput] evdev: add a quirk to disable debouncing on the MS
Nano Transcievers
A set of wireless devices that can scramble the timestamps, so we get
press/release within 8ms even though I doubt the user is capable of doing
this. Since they're generally good quality anyway, let's just disable
debouncing on those until someone complains and we need something more
sophisticated.
https://bugs.freedesktop.org/show_bug.cgi?id=104415
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
meson.build | 1
src/evdev-debounce.c | 38 ++++++++++++++++++++++++++++++++++++-
src/evdev-fallback.h | 2 +
src/evdev.c | 1
src/evdev.h | 1
test/litest.h | 3 ++
test/test-pointer.c | 14 ++++++-------
udev/90-libinput-model-quirks.hwdb | 4 +++
8 files changed, 56 insertions(+), 8 deletions(-)
Index: libinput-1.9.4/meson.build
===================================================================
--- libinput-1.9.4.orig/meson.build
+++ libinput-1.9.4/meson.build
@@ -561,6 +561,7 @@ if get_option('tests')
'test/litest-device-mouse-low-dpi.c',
'test/litest-device-mouse-wheel-click-angle.c',
'test/litest-device-mouse-wheel-click-count.c',
+ 'test/litest-device-ms-nano-transceiver-mouse.c',
'test/litest-device-ms-surface-cover.c',
'test/litest-device-protocol-a-touch-screen.c',
'test/litest-device-qemu-usb-tablet.c',
Index: libinput-1.9.4/src/evdev-debounce.c
===================================================================
--- libinput-1.9.4.orig/src/evdev-debounce.c
+++ libinput-1.9.4/src/evdev-debounce.c
@@ -83,6 +83,7 @@ debounce_state_to_str(enum debounce_stat
CASE_RETURN_STRING(DEBOUNCE_STATE_MAYBE_SPURIOUS);
CASE_RETURN_STRING(DEBOUNCE_STATE_RELEASED);
CASE_RETURN_STRING(DEBOUNCE_STATE_PRESS_PENDING);
+ CASE_RETURN_STRING(DEBOUNCE_STATE_DISABLED);
}
return NULL;
@@ -395,6 +396,31 @@ debounce_press_pending_event(struct fall
}
static void
+debounce_disabled_event(struct fallback_dispatch *fallback,
+ enum debounce_event event,
+ uint64_t time)
+{
+ switch (event) {
+ case DEBOUNCE_EVENT_PRESS:
+ fallback->debounce.button_time = time;
+ debounce_notify_button(fallback,
+ LIBINPUT_BUTTON_STATE_PRESSED);
+ break;
+ case DEBOUNCE_EVENT_RELEASE:
+ fallback->debounce.button_time = time;
+ debounce_notify_button(fallback,
+ LIBINPUT_BUTTON_STATE_RELEASED);
+ break;
+ case DEBOUNCE_EVENT_TIMEOUT_SHORT:
+ case DEBOUNCE_EVENT_TIMEOUT:
+ log_debounce_bug(fallback, event);
+ break;
+ case DEBOUNCE_EVENT_OTHERBUTTON:
+ break;
+ }
+}
+
+static void
debounce_handle_event(struct fallback_dispatch *fallback,
enum debounce_event event,
uint64_t time)
@@ -434,6 +460,9 @@ debounce_handle_event(struct fallback_di
case DEBOUNCE_STATE_PRESS_PENDING:
debounce_press_pending_event(fallback, event, time);
break;
+ case DEBOUNCE_STATE_DISABLED:
+ debounce_disabled_event(fallback, event, time);
+ break;
}
evdev_log_debug(fallback->device,
@@ -484,7 +513,8 @@ fallback_debounce_handle_state(struct fa
for (size_t i = 0; i < nchanged; i++) {
bool is_down = hw_is_key_down(dispatch, changed[i]);
- if (flushed) {
+ if (flushed &&
+ dispatch->debounce.state != DEBOUNCE_STATE_DISABLED) {
debounce_set_state(dispatch,
!is_down ?
DEBOUNCE_STATE_IS_DOWN :
@@ -538,6 +568,12 @@ fallback_init_debounce(struct fallback_d
struct evdev_device *device = dispatch->device;
char timer_name[64];
+ if (device->model_flags & EVDEV_MODEL_MS_NANO_TRANSCEIVER) {
+ dispatch->debounce.state = DEBOUNCE_STATE_DISABLED;
+ return;
+ }
+
+
dispatch->debounce.state = DEBOUNCE_STATE_IS_UP;
snprintf(timer_name,
Index: libinput-1.9.4/src/evdev-fallback.h
===================================================================
--- libinput-1.9.4.orig/src/evdev-fallback.h
+++ libinput-1.9.4/src/evdev-fallback.h
@@ -41,6 +41,8 @@ enum debounce_state {
DEBOUNCE_STATE_MAYBE_SPURIOUS,
DEBOUNCE_STATE_RELEASED,
DEBOUNCE_STATE_PRESS_PENDING,
+
+ DEBOUNCE_STATE_DISABLED = 999,
};
struct fallback_dispatch {
Index: libinput-1.9.4/src/evdev.c
===================================================================
--- libinput-1.9.4.orig/src/evdev.c
+++ libinput-1.9.4/src/evdev.c
@@ -1237,6 +1237,7 @@ evdev_read_model_flags(struct evdev_devi
MODEL(APPLE_TOUCHPAD_ONEBUTTON),
MODEL(LOGITECH_MARBLE_MOUSE),
MODEL(TABLET_NO_PROXIMITY_OUT),
+ MODEL(MS_NANO_TRANSCEIVER),
#undef MODEL
{ "ID_INPUT_TRACKBALL", EVDEV_MODEL_TRACKBALL },
{ NULL, EVDEV_MODEL_DEFAULT },
Index: libinput-1.9.4/src/evdev.h
===================================================================
--- libinput-1.9.4.orig/src/evdev.h
+++ libinput-1.9.4/src/evdev.h
@@ -123,6 +123,7 @@ enum evdev_device_model {
EVDEV_MODEL_APPLE_TOUCHPAD_ONEBUTTON = (1 << 25),
EVDEV_MODEL_LOGITECH_MARBLE_MOUSE = (1 << 26),
EVDEV_MODEL_TABLET_NO_PROXIMITY_OUT = (1 << 27),
+ EVDEV_MODEL_MS_NANO_TRANSCEIVER = (1 << 28),
};
enum evdev_button_scroll_state {
Index: libinput-1.9.4/test/litest.h
===================================================================
--- libinput-1.9.4.orig/test/litest.h
+++ libinput-1.9.4/test/litest.h
@@ -268,6 +268,8 @@ enum litest_device_type {
LITEST_WACOM_BAMBOO_2FG_PAD,
LITEST_WACOM_BAMBOO_2FG_PEN,
LITEST_WACOM_BAMBOO_2FG_FINGER,
+ LITEST_HP_WMI_HOTKEYS,
+ LITEST_MS_NANO_TRANSCEIVER_MOUSE,
};
enum litest_device_feature {
@@ -301,6 +303,7 @@ enum litest_device_feature {
LITEST_LEDS = 1 << 25,
LITEST_SWITCH = 1 << 26,
LITEST_IGNORED = 1 << 27,
+ LITEST_NO_DEBOUNCE = 1 << 28,
};
/* this is a semi-mt device, so we keep track of the touches that the tests
Index: libinput-1.9.4/test/test-pointer.c
===================================================================
--- libinput-1.9.4.orig/test/test-pointer.c
+++ libinput-1.9.4/test/test-pointer.c
@@ -2602,11 +2602,11 @@ litest_setup_tests_pointer(void)
litest_add("pointer:time", pointer_time_usec, LITEST_RELATIVE, LITEST_ANY);
- litest_add_ranged("pointer:debounce", debounce_bounce, LITEST_BUTTON, LITEST_TOUCHPAD, &buttons);
- litest_add("pointer:debounce", debounce_bounce_check_immediate, LITEST_BUTTON, LITEST_TOUCHPAD);
- litest_add_ranged("pointer:debounce", debounce_spurious, LITEST_BUTTON, LITEST_TOUCHPAD, &buttons);
- litest_add("pointer:debounce", debounce_spurious_multibounce, LITEST_BUTTON, LITEST_TOUCHPAD);
- litest_add("pointer:debounce_otherbutton", debounce_spurious_dont_enable_on_otherbutton, LITEST_BUTTON, LITEST_TOUCHPAD);
- litest_add("pointer:debounce_otherbutton", debounce_spurious_cancel_debounce_otherbutton, LITEST_BUTTON, LITEST_TOUCHPAD);
- litest_add("pointer:debounce_otherbutton", debounce_spurious_switch_to_otherbutton, LITEST_BUTTON, LITEST_TOUCHPAD);
+ litest_add_ranged("pointer:debounce", debounce_bounce, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE, &buttons);
+ litest_add("pointer:debounce", debounce_bounce_check_immediate, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);
+ litest_add_ranged("pointer:debounce", debounce_spurious, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE, &buttons);
+ litest_add("pointer:debounce", debounce_spurious_multibounce, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);
+ litest_add("pointer:debounce_otherbutton", debounce_spurious_dont_enable_on_otherbutton, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);
+ litest_add("pointer:debounce_otherbutton", debounce_spurious_cancel_debounce_otherbutton, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);
+ litest_add("pointer:debounce_otherbutton", debounce_spurious_switch_to_otherbutton, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);
}
Index: libinput-1.9.4/udev/90-libinput-model-quirks.hwdb
===================================================================
--- libinput-1.9.4.orig/udev/90-libinput-model-quirks.hwdb
+++ libinput-1.9.4/udev/90-libinput-model-quirks.hwdb
@@ -225,6 +225,10 @@ libinput:name:*Lid Switch*:dmi:*svnMicro
libinput:name:*Microsoft Surface Type Cover Keyboard*:dmi:*svnMicrosoftCorporation:pnSurface3:*
LIBINPUT_ATTR_KEYBOARD_INTEGRATION=internal
+# Microsoft Microsoft® Nano Transceiver v2.0"
+libinput:mouse:input:b0003v045Ep0800*
+ LIBINPUT_MODEL_MS_NANO_TRANSCEIVER=1
+
##########################################
# Razer
##########################################

BIN
libinput-1.10.0.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

BIN
libinput-1.10.0.tar.xz.sig Normal file

Binary file not shown.

BIN
libinput-1.9.4.tar.xz (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Tue Feb 13 08:59:48 UTC 2018 - jengelh@inai.de
- Update to new upstream release 1.10.0
* Dropping of the touchpad hysteresis. Previously, we employed
a hysteresis to avoid pointer wobbles. A side-effect of that
hysteresis was that small pointer motion wasn't as reactive
as it should be. A previous attempt in 2016 to drop it failed
(too many devices still needed it) so this time round we have
a different approach: we analyse the event sequence from the
touchpad and if we find it doesn't wobble, we disable the
hysteresis for good. In most cases, this happens fast enough
that you won't even notice, resulting in a more reactive
pointer.
* Touchpad tapping now handles palm detection where applicable,
resting a palm on a touchpad while tapping should not confuse
libinput anymore. Previously, palm touches were treated like
any other touch, causing unexpected 2 and 3-finger clicks.
* Some of the newer Wacom tablets (and older, worn-out ones)
can have a leftover pressure on tip up. This caused libinput
to miss out on the proximity event, leading to a constantly
in-proximity tool. A new threshold for proximity out fixes
this.
- Remove 0001-evdev-add-a-quirk-to-disable-debouncing-on-the-MS-Na.patch
(included upstream)
-------------------------------------------------------------------
Thu Feb 8 00:02:32 UTC 2018 - jengelh@inai.de

View File

@ -18,7 +18,7 @@
Name: libinput
%define lname libinput10
Version: 1.9.4
Version: 1.10.0
Release: 0
Summary: Input device and event processing library
License: MIT
@ -34,7 +34,6 @@ Source3: baselibs.conf
Source4: %name.keyring
Source5: libinput-rpmlintrc
Patch1: kill-env.diff
Patch2: 0001-evdev-add-a-quirk-to-disable-debouncing-on-the-MS-Na.patch
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: gcc-c++