Hello community, here is the log from the commit of package libinput for openSUSE:Factory checked in at 2020-10-10 19:00:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libinput (Old) and /work/SRC/openSUSE:Factory/.libinput.new.4249 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libinput" Sat Oct 10 19:00:53 2020 rev:92 rq:840049 version:1.16.2 Changes: -------- --- /work/SRC/openSUSE:Factory/libinput/libinput.changes 2020-08-15 21:18:09.911547478 +0200 +++ /work/SRC/openSUSE:Factory/.libinput.new.4249/libinput.changes 2020-10-10 19:01:01.844384211 +0200 @@ -1,0 +2,8 @@ +Wed Oct 7 05:21:18 UTC 2020 - Jan Engelhardt <jeng...@inai.de> + +- Update to release 1.16.2 + * A few device-specific fixes for the Google Pixelbook, Apple + Magic Trackpad 2, some ALPS i2c touchpads and a jumping + cursor fix for ALPS DoalPoint touchpads. + +------------------------------------------------------------------- Old: ---- libinput-1.16.1.tar.xz libinput-1.16.1.tar.xz.sig New: ---- libinput-1.16.2.tar.xz libinput-1.16.2.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libinput.spec ++++++ --- /var/tmp/diff_new_pack.auQwEQ/_old 2020-10-10 19:01:02.492384531 +0200 +++ /var/tmp/diff_new_pack.auQwEQ/_new 2020-10-10 19:01:02.492384531 +0200 @@ -20,7 +20,7 @@ Name: libinput %define lname libinput10 -Version: 1.16.1 +Version: 1.16.2 Release: 0 Summary: Input device and event processing library License: MIT ++++++ libinput-1.16.1.tar.xz -> libinput-1.16.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.16.1/doc/user/touchpad-jumping-cursors.rst new/libinput-1.16.2/doc/user/touchpad-jumping-cursors.rst --- old/libinput-1.16.1/doc/user/touchpad-jumping-cursors.rst 2020-08-13 05:50:03.604642400 +0200 +++ new/libinput-1.16.2/doc/user/touchpad-jumping-cursors.rst 2020-10-07 02:37:44.232665800 +0200 @@ -64,3 +64,17 @@ Note that it most cases, libinput cannot actually fix the issue. Filing a bug is useful to figure out if there are other factors at play or whether there are heuristics we can employ to reduce the impact. + +------------------------------------------------------------------------------ +AlpsPS/2 ALPS DualPoint TouchPad jumping to 4095/0 +------------------------------------------------------------------------------ + +A special case of pointer jumps happens on ``AlpsPS/2 ALPS DualPoint TouchPad`` +devices found in the Lenovo ThinkPad E465 and E550 and likely others with +the same touchpad hardware. On those devices, the touchpad occasionally +sends an event for the second finger to move to position 4095/0 before +moving back to the original position. libinput detects this movement and +removes it but depending on the interaction this may cause a smaller jump +later when the coordinates reset to the new position of the finger. + +Some more information is available in `Gitlab Issue #492 <https://gitlab.freedesktop.org/libinput/libinput/-/issues/492>`__. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.16.1/meson.build new/libinput-1.16.2/meson.build --- old/libinput-1.16.1/meson.build 2020-08-13 05:50:03.606642200 +0200 +++ new/libinput-1.16.2/meson.build 2020-10-07 02:37:44.235665800 +0200 @@ -1,5 +1,5 @@ project('libinput', 'c', - version : '1.16.1', + version : '1.16.2', license : 'MIT/Expat', default_options : [ 'c_std=gnu99', 'warning_level=2' ], meson_version : '>= 0.45.0') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.16.1/quirks/30-vendor-alps.quirks new/libinput-1.16.2/quirks/30-vendor-alps.quirks --- old/libinput-1.16.1/quirks/30-vendor-alps.quirks 2020-08-13 05:50:03.607642400 +0200 +++ new/libinput-1.16.2/quirks/30-vendor-alps.quirks 2020-10-07 02:37:44.235665800 +0200 @@ -19,6 +19,12 @@ MatchProduct=0x0008 ModelALPSSerialTouchpad=1 +[ALPS i2c Touchpads] +MatchUdevType=touchpad +MatchBus=i2c +MatchVendor=0x0488 +AttrPalmPressureThreshold=180 + [ALPS v8 Touchpads] MatchUdevType=touchpad MatchBus=ps2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.16.1/quirks/50-system-apple.quirks new/libinput-1.16.2/quirks/50-system-apple.quirks --- old/libinput-1.16.1/quirks/50-system-apple.quirks 2020-08-13 05:50:03.608642300 +0200 +++ new/libinput-1.16.2/quirks/50-system-apple.quirks 2020-10-07 02:37:44.235665800 +0200 @@ -57,7 +57,8 @@ AttrSizeHint=162x115 AttrTouchSizeRange=20:10 AttrPalmSizeThreshold=900 -AttrThumbSizeThreshold=700 +AttrThumbSizeThreshold=800 +AttrPalmPressureThreshold=190 [Apple Magic Trackpad v2 (new vendor ID)] MatchVendor=0x004C @@ -65,7 +66,8 @@ AttrSizeHint=162x115 AttrTouchSizeRange=20:10 AttrPalmSizeThreshold=900 -AttrThumbSizeThreshold=700 +AttrThumbSizeThreshold=800 +AttrPalmPressureThreshold=190 [Apple Touchpad OneButton] MatchUdevType=touchpad diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.16.1/quirks/50-system-google.quirks new/libinput-1.16.2/quirks/50-system-google.quirks --- old/libinput-1.16.1/quirks/50-system-google.quirks 2020-08-13 05:50:03.608642300 +0200 +++ new/libinput-1.16.2/quirks/50-system-google.quirks 2020-10-07 02:37:44.236666000 +0200 @@ -86,3 +86,11 @@ MatchName=Atmel maXTouch Touchpad MatchDMIModalias=dmi:*svn*GOOGLE*:pn*Samus* ModelChromebook=1 + +[Google Chromebook Eve] +MatchUdevType=touchpad +MatchName=ACPI0C50:00 18D1:5028 +MatchDMIModalias=dmi:*svnGoogle:pnEve* +ModelChromebook=1 +AttrPressureRange=6:4 +AttrThumbPressureThreshold=45 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.16.1/src/evdev-fallback.h new/libinput-1.16.2/src/evdev-fallback.h --- old/libinput-1.16.1/src/evdev-fallback.h 2020-08-13 05:50:03.609642300 +0200 +++ new/libinput-1.16.2/src/evdev-fallback.h 2020-10-07 02:37:44.236666000 +0200 @@ -194,7 +194,7 @@ return KEY_TYPE_KEY; if (code >= BTN_DPAD_UP && code <= BTN_DPAD_RIGHT) return KEY_TYPE_BUTTON; - if (code >= KEY_ALS_TOGGLE && code <= KEY_ONSCREEN_KEYBOARD) + if (code >= KEY_ALS_TOGGLE && code < BTN_TRIGGER_HAPPY) return KEY_TYPE_KEY; if (code >= BTN_TRIGGER_HAPPY && code <= BTN_TRIGGER_HAPPY40) return KEY_TYPE_BUTTON; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.16.1/src/evdev-mt-touchpad.c new/libinput-1.16.2/src/evdev-mt-touchpad.c --- old/libinput-1.16.1/src/evdev-mt-touchpad.c 2020-08-13 05:50:03.611642400 +0200 +++ new/libinput-1.16.2/src/evdev-mt-touchpad.c 2020-10-07 02:37:44.237666000 +0200 @@ -1542,6 +1542,19 @@ abs_distance = hypot(mm.x, mm.y) * reference_interval/tdelta; rel_distance = abs_distance - t->jumps.last_delta_mm; + /* Special case for the ALPS devices in the Lenovo ThinkPad E465, + * E550. These devices send occasional 4095/0 events on two fingers + * before snapping back to the correct position. + * https://gitlab.freedesktop.org/libinput/libinput/-/issues/492 + * The specific values are hardcoded here, if this ever happens on + * any other device we can make it absmax/absmin instead. + */ + if (tp->device->model_flags & EVDEV_MODEL_ALPS_SERIAL_TOUCHPAD && + t->point.x == 4095 && t->point.y == 0) { + t->point = last->point; + return true; + } + /* Cursor jump if: * - current single-event delta is >20mm, or * - we increased the delta by over 7mm within a 12ms frame. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.16.1/tools/libinput-replay new/libinput-1.16.2/tools/libinput-replay --- old/libinput-1.16.1/tools/libinput-replay 2020-08-13 05:50:03.636642200 +0200 +++ new/libinput-1.16.2/tools/libinput-replay 2020-10-07 02:37:44.268665800 +0200 @@ -218,7 +218,12 @@ def setup_quirks(recording): devices = fetch(recording, 'devices') overrides = None - quirks = [create_device_quirk(d) for d in devices if 'quirks' in d] + quirks = [] + for d in devices: + if 'quirks' in d: + quirk = create_device_quirk(d) + if quirk: + quirks.append(quirk) if not quirks: return None