Hello community, here is the log from the commit of package libinput for openSUSE:Factory checked in at 2019-10-30 14:41:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libinput (Old) and /work/SRC/openSUSE:Factory/.libinput.new.2990 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libinput" Wed Oct 30 14:41:54 2019 rev:80 rq:743437 version:1.14.3 Changes: -------- --- /work/SRC/openSUSE:Factory/libinput/libinput.changes 2019-10-23 15:36:40.449738402 +0200 +++ /work/SRC/openSUSE:Factory/.libinput.new.2990/libinput.changes 2019-10-30 14:42:05.713817085 +0100 @@ -1,0 +2,13 @@ +Mon Oct 28 08:37:10 UTC 2019 - Jan Engelhardt <[email protected]> + +- Update to release 1.14.3 + * This release changes the horizontal scroll direction of the + Logitech MX Master 3 back to what users would expect (this + device ships with the wheel inverted). Tablet no longer force + a proximity out while the tip is logically down. Single-touch + screens sent superfluous (and wrong) motion events within the + same touch down - that's fixed now. Finally, touchpad + scrolling now matches the 'default' speed of the cursor, + previously it was 10% too fast. + +------------------------------------------------------------------- Old: ---- libinput-1.14.2.tar.xz libinput-1.14.2.tar.xz.sig New: ---- libinput-1.14.3.tar.xz libinput-1.14.3.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libinput.spec ++++++ --- /var/tmp/diff_new_pack.Oofzo4/_old 2019-10-30 14:42:06.345817758 +0100 +++ /var/tmp/diff_new_pack.Oofzo4/_new 2019-10-30 14:42:06.349817762 +0100 @@ -18,7 +18,7 @@ Name: libinput %define lname libinput10 -Version: 1.14.2 +Version: 1.14.3 Release: 0 Summary: Input device and event processing library License: MIT ++++++ libinput-1.14.2.tar.xz -> libinput-1.14.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.2/doc/user/conf.py.in new/libinput-1.14.3/doc/user/conf.py.in --- old/libinput-1.14.2/doc/user/conf.py.in 2019-10-17 03:26:59.000000000 +0200 +++ new/libinput-1.14.3/doc/user/conf.py.in 2019-10-28 05:23:05.000000000 +0100 @@ -167,10 +167,6 @@ from recommonmark.parser import CommonMarkParser -source_parsers = { - '.md': CommonMarkParser, -} - extlinks = { 'commit' : ('https://gitlab.freedesktop.org/libinput/libinput/commit/%s', 'git commit ') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.2/meson.build new/libinput-1.14.3/meson.build --- old/libinput-1.14.2/meson.build 2019-10-17 03:26:59.000000000 +0200 +++ new/libinput-1.14.3/meson.build 2019-10-28 05:23:05.000000000 +0100 @@ -1,5 +1,5 @@ project('libinput', 'c', - version : '1.14.2', + version : '1.14.3', license : 'MIT/Expat', default_options : [ 'c_std=gnu99', 'warning_level=2' ], meson_version : '>= 0.41.0') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.2/quirks/30-vendor-logitech.quirks new/libinput-1.14.3/quirks/30-vendor-logitech.quirks --- old/libinput-1.14.2/quirks/30-vendor-logitech.quirks 2019-10-17 03:26:59.000000000 +0200 +++ new/libinput-1.14.3/quirks/30-vendor-logitech.quirks 2019-10-28 05:23:05.000000000 +0100 @@ -55,3 +55,9 @@ MatchVendor=0x46D MatchProduct=0x4082 ModelInvertHorizontalScrolling=1 + +# MX Master 3 has a different PID on bluetooth +[Logitech MX Master 3] +MatchVendor=0x46D +MatchProduct=0xB023 +ModelInvertHorizontalScrolling=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.2/src/evdev-fallback.c new/libinput-1.14.3/src/evdev-fallback.c --- old/libinput-1.14.2/src/evdev-fallback.c 2019-10-17 03:26:59.000000000 +0200 +++ new/libinput-1.14.3/src/evdev-fallback.c 2019-10-28 05:23:05.000000000 +0100 @@ -977,9 +977,7 @@ if (dispatch->pending_event & EVDEV_ABSOLUTE_TOUCH_DOWN) { if (fallback_flush_st_down(dispatch, device, time)) need_touch_frame = true; - } - - if (dispatch->pending_event & EVDEV_ABSOLUTE_MOTION) { + } else if (dispatch->pending_event & EVDEV_ABSOLUTE_MOTION) { if (device->seat_caps & EVDEV_DEVICE_TOUCH) { if (fallback_flush_st_motion(dispatch, device, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.2/src/evdev-tablet.c new/libinput-1.14.3/src/evdev-tablet.c --- old/libinput-1.14.2/src/evdev-tablet.c 2019-10-17 03:26:59.000000000 +0200 +++ new/libinput-1.14.3/src/evdev-tablet.c 2019-10-28 05:23:05.000000000 +0100 @@ -1944,6 +1944,11 @@ }; struct input_event *e; + if (tablet_has_status(tablet, TABLET_TOOL_IN_CONTACT)) { + tablet_proximity_out_quirk_set_timer(tablet, now); + return; + } + if (tablet->quirks.last_event_time > now - FORCED_PROXOUT_TIMEOUT) { tablet_proximity_out_quirk_set_timer(tablet, tablet->quirks.last_event_time); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.2/src/filter-touchpad.c new/libinput-1.14.3/src/filter-touchpad.c --- old/libinput-1.14.2/src/filter-touchpad.c 2019-10-17 03:26:59.000000000 +0200 +++ new/libinput-1.14.3/src/filter-touchpad.c 2019-10-28 05:23:05.000000000 +0100 @@ -189,10 +189,19 @@ struct touchpad_accelerator *accel = (struct touchpad_accelerator *)filter; struct normalized_coords normalized; + /* We need to use the same baseline here as the accelerated code, + * otherwise our unaccelerated speed is different to the accelerated + * speed on the plateau. + * + * This is a hack, the baseline should be incorporated into the + * TP_MAGIC_SLOWDOWN so we only have one number here but meanwhile + * this will do. + */ + const double baseline = 0.9; normalized = normalize_for_dpi(unaccelerated, accel->dpi); - normalized.x = TP_MAGIC_SLOWDOWN * normalized.x; - normalized.y = TP_MAGIC_SLOWDOWN * normalized.y; + normalized.x = baseline * TP_MAGIC_SLOWDOWN * normalized.x; + normalized.y = baseline * TP_MAGIC_SLOWDOWN * normalized.y; return normalized; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.2/test/test-tablet.c new/libinput-1.14.3/test/test-tablet.c --- old/libinput-1.14.2/test/test-tablet.c 2019-10-17 03:26:59.000000000 +0200 +++ new/libinput-1.14.3/test/test-tablet.c 2019-10-28 05:23:05.000000000 +0100 @@ -1534,6 +1534,42 @@ } END_TEST +START_TEST(proximity_out_not_during_contact) +{ + struct litest_device *dev = litest_current_device(); + struct libinput *li = dev->libinput; + struct axis_replacement axes[] = { + { ABS_DISTANCE, 0 }, + { ABS_PRESSURE, 10 }, + { -1, -1 } + }; + + litest_tablet_proximity_in(dev, 10, 10, axes); + litest_tablet_motion(dev, 12, 12, axes); + litest_drain_events(li); + + litest_timeout_tablet_proxout(); + libinput_dispatch(li); + + /* No forced proxout yet */ + litest_assert_empty_queue(li); + + litest_axis_set_value(axes, ABS_PRESSURE, 0); + litest_tablet_motion(dev, 14, 14, axes); + litest_drain_events(li); + + litest_timeout_tablet_proxout(); + libinput_dispatch(li); + + /* The forced prox out */ + litest_assert_tablet_proximity_event(li, + LIBINPUT_TABLET_TOOL_PROXIMITY_STATE_OUT); + + litest_tablet_proximity_out(dev); + litest_assert_empty_queue(li); +} +END_TEST + START_TEST(proximity_out_no_timeout) { struct litest_device *dev = litest_current_device(); @@ -5756,6 +5792,7 @@ litest_add("tablet:proximity", proximity_range_button_press, LITEST_TABLET | LITEST_DISTANCE | LITEST_TOOL_MOUSE, LITEST_ANY); litest_add("tablet:proximity", proximity_range_button_release, LITEST_TABLET | LITEST_DISTANCE | LITEST_TOOL_MOUSE, LITEST_ANY); litest_add("tablet:proximity", proximity_out_slow_event, LITEST_TABLET | LITEST_DISTANCE, LITEST_ANY); + litest_add("tablet:proximity", proximity_out_not_during_contact, LITEST_TABLET | LITEST_DISTANCE, LITEST_ANY); litest_add_for_device("tablet:proximity", proximity_out_no_timeout, LITEST_WACOM_ISDV4_4200_PEN); litest_add_no_device("tablet:proximity", proximity_out_on_delete); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.2/test/test-touch.c new/libinput-1.14.3/test/test-touch.c --- old/libinput-1.14.2/test/test-touch.c 2019-10-17 03:26:59.000000000 +0200 +++ new/libinput-1.14.3/test/test-touch.c 2019-10-28 05:23:05.000000000 +0100 @@ -64,6 +64,25 @@ } END_TEST +START_TEST(touch_downup_no_motion) +{ + struct litest_device *dev = litest_current_device(); + struct libinput *li = dev->libinput; + + litest_drain_events(li); + + litest_touch_down(dev, 0, 10, 10); + libinput_dispatch(li); + + litest_assert_touch_down_frame(li); + + litest_touch_up(dev, 0); + libinput_dispatch(li); + + litest_assert_touch_up_frame(li); +} +END_TEST + START_TEST(touch_abs_transform) { struct litest_device *dev; @@ -1322,6 +1341,8 @@ struct range axes = { ABS_X, ABS_Y + 1}; litest_add("touch:frame", touch_frame_events, LITEST_TOUCH, LITEST_ANY); + litest_add("touch:down", touch_downup_no_motion, LITEST_TOUCH, LITEST_ANY); + litest_add("touch:down", touch_downup_no_motion, LITEST_SINGLE_TOUCH, LITEST_TOUCHPAD); litest_add_no_device("touch:abs-transform", touch_abs_transform); litest_add("touch:slots", touch_seat_slot, LITEST_TOUCH, LITEST_TOUCHPAD); litest_add_no_device("touch:slots", touch_many_slots); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.2/test/test-touchpad.c new/libinput-1.14.3/test/test-touchpad.c --- old/libinput-1.14.2/test/test-touchpad.c 2019-10-17 03:26:59.000000000 +0200 +++ new/libinput-1.14.3/test/test-touchpad.c 2019-10-28 05:23:05.000000000 +0100 @@ -150,13 +150,13 @@ litest_drain_events(li); test_2fg_scroll(dev, 0.1, 40, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, 10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, 9); test_2fg_scroll(dev, 0.1, -40, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, -10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, -9); test_2fg_scroll(dev, 40, 0.1, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, 10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, 9); test_2fg_scroll(dev, -40, 0.1, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, -10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, -9); /* 2fg scroll smaller than the threshold should not generate events */ test_2fg_scroll(dev, 0.1, 0.1, true); @@ -602,13 +602,13 @@ libinput_device_config_scroll_set_natural_scroll_enabled(dev->libinput_device, 1); test_2fg_scroll(dev, 0.1, 40, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, -10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, -9); test_2fg_scroll(dev, 0.1, -40, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, 10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, 9); test_2fg_scroll(dev, 40, 0.1, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, -10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, -9); test_2fg_scroll(dev, -40, 0.1, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, 10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, 9); } END_TEST
