Hello community, here is the log from the commit of package libinput for openSUSE:Factory checked in at 2018-03-20 21:53:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libinput (Old) and /work/SRC/openSUSE:Factory/.libinput.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "libinput" Tue Mar 20 21:53:10 2018 rev:58 rq:588135 version:1.10.3 Changes: -------- --- /work/SRC/openSUSE:Factory/libinput/libinput.changes 2018-03-12 12:07:55.015636262 +0100 +++ /work/SRC/openSUSE:Factory/.libinput.new/libinput.changes 2018-03-20 21:53:13.369101175 +0100 @@ -1,0 +2,10 @@ +Wed Mar 14 08:56:20 UTC 2018 - jengelh@inai.de + +- Update to bugfix release 1.10.3 + * Fix a crasher triggered by a specific event sequence during + 3-finger gestures (and on some touchpads 2-finger gestures). + * Fix the new pointer jitter detection. A bitmask got lost and + the software compared 32 bits instead of only the 3 it ought + to care about. + +------------------------------------------------------------------- Old: ---- libinput-1.10.2.tar.xz libinput-1.10.2.tar.xz.sig New: ---- libinput-1.10.3.tar.xz libinput-1.10.3.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libinput.spec ++++++ --- /var/tmp/diff_new_pack.YbJZOD/_old 2018-03-20 21:53:14.325066753 +0100 +++ /var/tmp/diff_new_pack.YbJZOD/_new 2018-03-20 21:53:14.329066609 +0100 @@ -18,7 +18,7 @@ Name: libinput %define lname libinput10 -Version: 1.10.2 +Version: 1.10.3 Release: 0 Summary: Input device and event processing library License: MIT ++++++ libinput-1.10.2.tar.xz -> libinput-1.10.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.10.2/meson.build new/libinput-1.10.3/meson.build --- old/libinput-1.10.2/meson.build 2018-03-07 06:40:44.000000000 +0100 +++ new/libinput-1.10.3/meson.build 2018-03-14 06:34:05.000000000 +0100 @@ -1,5 +1,5 @@ project('libinput', 'c', 'cpp', - version : '1.10.2', + version : '1.10.3', license : 'MIT/Expat', default_options : [ 'c_std=gnu99', 'warning_level=2' ], meson_version : '>= 0.40.0') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.10.2/src/evdev-mt-touchpad.c new/libinput-1.10.3/src/evdev-mt-touchpad.c --- old/libinput-1.10.2/src/evdev-mt-touchpad.c 2018-03-07 06:40:44.000000000 +0100 +++ new/libinput-1.10.3/src/evdev-mt-touchpad.c 2018-03-14 06:34:05.000000000 +0100 @@ -178,11 +178,12 @@ return; } - t->hysteresis.x_motion_history <<= 1; + t->hysteresis.x_motion_history >>= 1; if (dx > 0) { /* right move */ static const char r_l_r = 0x5; /* {Right, Left, Right} */ - t->hysteresis.x_motion_history |= 0x1; + + t->hysteresis.x_motion_history |= (1 << 2); if (t->hysteresis.x_motion_history == r_l_r) { tp->hysteresis.enabled = true; evdev_log_debug(tp->device, "hysteresis enabled\n"); @@ -345,22 +346,26 @@ switch (t->state) { case TOUCH_NONE: case TOUCH_MAYBE_END: - case TOUCH_HOVERING: return; case TOUCH_END: evdev_log_bug_libinput(tp->device, "touch already in TOUCH_END\n"); return; + case TOUCH_HOVERING: case TOUCH_BEGIN: case TOUCH_UPDATE: break; } - t->dirty = true; - t->state = TOUCH_MAYBE_END; + if (t->state != TOUCH_HOVERING) { + assert(tp->nfingers_down >= 1); + tp->nfingers_down--; + t->state = TOUCH_MAYBE_END; + } else { + t->state = TOUCH_NONE; + } - assert(tp->nfingers_down >= 1); - tp->nfingers_down--; + t->dirty = true; } /**