From 1b4109b7206c7bbd7823c51805f92e88386244f0ce92905d6b120ef48788c1d6 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Tue, 4 Aug 2015 17:19:30 +0000 Subject: [PATCH 1/2] Accepting request 320432 from home:Zaitor New rel from upstream. OBS-URL: https://build.opensuse.org/request/show/320432 OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/libinput?expand=0&rev=41 --- libinput-0.20.0.tar.xz | 3 - libinput-0.20.0.tar.xz.sig | Bin 72 -> 0 bytes libinput-0.21.0.tar.xz | 3 + libinput-0.21.0.tar.xz.sig | Bin 0 -> 72 bytes ...al-synaptics-needto-fake-new-touches.patch | 61 ++++++++++++++++++ libinput.changes | 38 +++++++++++ libinput.spec | 6 +- 7 files changed, 106 insertions(+), 5 deletions(-) delete mode 100644 libinput-0.20.0.tar.xz delete mode 100644 libinput-0.20.0.tar.xz.sig create mode 100644 libinput-0.21.0.tar.xz create mode 100644 libinput-0.21.0.tar.xz.sig create mode 100644 libinput-touchpad-serial-synaptics-needto-fake-new-touches.patch diff --git a/libinput-0.20.0.tar.xz b/libinput-0.20.0.tar.xz deleted file mode 100644 index f9b4649..0000000 --- a/libinput-0.20.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:175bdfce97cfab13a2a0d02c3138fcf02f60c8fcd098835a97128ff114d7125d -size 647668 diff --git a/libinput-0.20.0.tar.xz.sig b/libinput-0.20.0.tar.xz.sig deleted file mode 100644 index 56a3a84ee235617f88779d29a8eb59809bacc513e560650c8ce2e687eaba84bc..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72 zcmV-O0Jr~$Mg#y60ssaD0#&Cw1^@~P5aK(2aI|OezauUHpGVv5lOoj{w0YyVcV++# evE~xp5dfb+S;@zLGkaCda={W)Opx5rI+u!ZRve@N diff --git a/libinput-0.21.0.tar.xz b/libinput-0.21.0.tar.xz new file mode 100644 index 0000000..398a0fc --- /dev/null +++ b/libinput-0.21.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cce7a9e510dfe5c4a19ad00e9350808d4f59f8611fd2b5e87213c507283f550 +size 658788 diff --git a/libinput-0.21.0.tar.xz.sig b/libinput-0.21.0.tar.xz.sig new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..3603f5bd86120eab8617df8f5acd1bab8741a607eabb707df8ffa30ec2dac837 GIT binary patch literal 72 zcmV-O0Jr~$Mg#y60ssaD0#(2cN&pH85aK(2aI|OezjjgppsTlJIk@kfpMuU?4s46; e4|o^LlmMO~zB-z+V~khGo$B`-2#9;2uXbmpCLSCB literal 0 HcmV?d00001 diff --git a/libinput-touchpad-serial-synaptics-needto-fake-new-touches.patch b/libinput-touchpad-serial-synaptics-needto-fake-new-touches.patch new file mode 100644 index 0000000..c45df32 --- /dev/null +++ b/libinput-touchpad-serial-synaptics-needto-fake-new-touches.patch @@ -0,0 +1,61 @@ +On the 4.1 kernels synaptics pretends to have 3 slots (the serial fw only does +2). This was added to avoid cursor jumps but has since been reverted for 4.2 +(kernel commit dbf3c37086, 4.1.3 is still buggy). In some cases a TRIPLETAP +may be triggered without slot 2 ever activating. + +While there are still those kernels out there, work around this bug by opening +a new touch point where none exists if the fake finger count exceeds the slot +count. + +Reported-by: Jan Alexander Steffens +Signed-off-by: Peter Hutterer +Tested-by: Jan Alexander Steffens +Reviewed-by: Hans de Goede +--- +Changes to v2: +- split out the handling instead of having a tmp state variable, see Hans' + comments from v2 + +Mainly sending this to the list again so I have a link to point people to. +If you're on 4.1.x add this patch to your distribution package. + + src/evdev-mt-touchpad.c | 22 ++++++++++++++++------ + 1 file changed, 16 insertions(+), 6 deletions(-) + +diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c +index a683d9a..5ef03d5 100644 +--- a/src/evdev-mt-touchpad.c ++++ b/src/evdev-mt-touchpad.c +@@ -369,13 +369,23 @@ tp_restore_synaptics_touches(struct tp_dispatch *tp, + for (i = 0; i < tp->num_slots; i++) { + struct tp_touch *t = tp_get_touch(tp, i); + +- if (t->state != TOUCH_END) ++ switch(t->state) { ++ case TOUCH_HOVERING: ++ case TOUCH_BEGIN: ++ case TOUCH_UPDATE: + continue; +- +- /* new touch, move it through begin to update immediately */ +- tp_new_touch(tp, t, time); +- tp_begin_touch(tp, t, time); +- t->state = TOUCH_UPDATE; ++ case TOUCH_NONE: ++ /* new touch, move it through to begin immediately */ ++ tp_new_touch(tp, t, time); ++ tp_begin_touch(tp, t, time); ++ break; ++ case TOUCH_END: ++ /* touch just ended, we need need to restore it to update */ ++ tp_new_touch(tp, t, time); ++ tp_begin_touch(tp, t, time); ++ t->state = TOUCH_UPDATE; ++ break; ++ } + } + } + +-- +2.4.3 + diff --git a/libinput.changes b/libinput.changes index dbc8cfb..fc3d334 100644 --- a/libinput.changes +++ b/libinput.changes @@ -1,3 +1,41 @@ +------------------------------------------------------------------- +Tue Aug 4 16:35:20 UTC 2015 - zaitor@opensuse.org + +- Update to version 0.21.0: + * A new addition to the API is the configuration option to toggle + disable-while-typing. It's still enabled by default, but can + now be disabled for the use-cases where it is problematic + (games, for example). The API is the usual quartett of + configuration options: + - libinput_device_config_dwt_is_available + - libinput_device_config_dwt_set_enabled + - libinput_device_config_dwt_get_enabled + - libinput_device_config_dwt_get_default_enabled + * The second addition to the API is the ability to get the time + in microseconds from an event: + - libinput_event_gesture_get_time_usec + - libinput_event_keyboard_get_time_usec + - libinput_event_pointer_get_time_usec + - libinput_event_touch_get_time_usec + * libinput switched internally to use µs for all timestamps which + will help those devices that have a sampling frequency of more + than 1000Hz. + * Thumb detection, added for 0.20 has seen fine-tuning to reduce + the number of misdetection. Likewise, the gesture code has seen + a bunch of changes to tune the reliability of gesture + detection, especially on semi-mt touchpads. + * Scrolling is now more reactive too, with reduced thresholds + before scrolling kicks in. + * We've also merged a bunch of device-specific device handling to + work around quirks and deficiencies in some touchpad hardware. + * Note that if your distribution is on kernel 4.1.x, you should + add this patch here to your distribution's package unless + kernel dbf3c37086 is in your tree already. + http://lists.freedesktop.org/archives/wayland-devel/2015-August/023782.html +- Add + libinput-touchpad-serial-synaptics-needto-fake-new-touches.patch + following upstreams advice. + ------------------------------------------------------------------- Sat Jul 18 08:28:06 UTC 2015 - tittiatcoke@gmail.com diff --git a/libinput.spec b/libinput.spec index b9fc39b..bc54e2a 100644 --- a/libinput.spec +++ b/libinput.spec @@ -18,8 +18,8 @@ Name: libinput %define lname libinput10 -%define rversion 0.20.0 -Version: 0.20 +%define rversion 0.21.0 +Version: 0.21 Release: 0 Summary: Input device and event processing library License: MIT @@ -33,6 +33,7 @@ Source: http://freedesktop.org/software/libinput/%name-%rversion.tar.xz Source2: http://freedesktop.org/software/libinput/%name-%rversion.tar.xz.sig Source3: baselibs.conf Source4: %name.keyring +Patch0: libinput-touchpad-serial-synaptics-needto-fake-new-touches.patch #git#BuildRequires: autoconf >= 2.64 #git#BuildRequires: automake >= 1.11 #git#BuildRequires: libtool >= 2.2 @@ -99,6 +100,7 @@ to develop applications that require libinput. %prep %setup -qn %name-%rversion +%patch0 -p1 %build if [ ! -e configure ]; then From 33b195f93300cbaf2b598eeb768b1bbf0bc903106c304623100d343e2fe7d30c Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Tue, 4 Aug 2015 17:27:37 +0000 Subject: [PATCH 2/2] broom it up OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/libinput?expand=0&rev=42 --- ...hpad-serial-synaptics-needto-fake-new-touches.patch | 4 +++- libinput.changes | 10 +++------- libinput.spec | 4 ++-- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/libinput-touchpad-serial-synaptics-needto-fake-new-touches.patch b/libinput-touchpad-serial-synaptics-needto-fake-new-touches.patch index c45df32..7380b4f 100644 --- a/libinput-touchpad-serial-synaptics-needto-fake-new-touches.patch +++ b/libinput-touchpad-serial-synaptics-needto-fake-new-touches.patch @@ -1,3 +1,6 @@ +From: Peter Hutterer +References: http://lists.freedesktop.org/archives/wayland-devel/2015-August/023782.html + On the 4.1 kernels synaptics pretends to have 3 slots (the serial fw only does 2). This was added to avoid cursor jumps but has since been reverted for 4.2 (kernel commit dbf3c37086, 4.1.3 is still buggy). In some cases a TRIPLETAP @@ -58,4 +61,3 @@ index a683d9a..5ef03d5 100644 -- 2.4.3 - diff --git a/libinput.changes b/libinput.changes index fc3d334..8b9cba0 100644 --- a/libinput.changes +++ b/libinput.changes @@ -20,21 +20,17 @@ Tue Aug 4 16:35:20 UTC 2015 - zaitor@opensuse.org * libinput switched internally to use µs for all timestamps which will help those devices that have a sampling frequency of more than 1000Hz. - * Thumb detection, added for 0.20 has seen fine-tuning to reduce + * Thumb detection, added for 0.20, has seen fine-tuning to reduce the number of misdetection. Likewise, the gesture code has seen a bunch of changes to tune the reliability of gesture detection, especially on semi-mt touchpads. * Scrolling is now more reactive too, with reduced thresholds before scrolling kicks in. - * We've also merged a bunch of device-specific device handling to + * Merged a bunch of device-specific device handling to work around quirks and deficiencies in some touchpad hardware. - * Note that if your distribution is on kernel 4.1.x, you should - add this patch here to your distribution's package unless - kernel dbf3c37086 is in your tree already. - http://lists.freedesktop.org/archives/wayland-devel/2015-August/023782.html - Add libinput-touchpad-serial-synaptics-needto-fake-new-touches.patch - following upstreams advice. + following upstreams advice for kernel 4.1. ------------------------------------------------------------------- Sat Jul 18 08:28:06 UTC 2015 - tittiatcoke@gmail.com diff --git a/libinput.spec b/libinput.spec index bc54e2a..c082d53 100644 --- a/libinput.spec +++ b/libinput.spec @@ -33,7 +33,7 @@ Source: http://freedesktop.org/software/libinput/%name-%rversion.tar.xz Source2: http://freedesktop.org/software/libinput/%name-%rversion.tar.xz.sig Source3: baselibs.conf Source4: %name.keyring -Patch0: libinput-touchpad-serial-synaptics-needto-fake-new-touches.patch +Patch1: libinput-touchpad-serial-synaptics-needto-fake-new-touches.patch #git#BuildRequires: autoconf >= 2.64 #git#BuildRequires: automake >= 1.11 #git#BuildRequires: libtool >= 2.2 @@ -100,7 +100,7 @@ to develop applications that require libinput. %prep %setup -qn %name-%rversion -%patch0 -p1 +%patch -P 1 -p1 %build if [ ! -e configure ]; then