commit libinput for openSUSE:Factory
Hello community, here is the log from the commit of package libinput for openSUSE:Factory checked in at 2019-10-23 15:36:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libinput (Old) and /work/SRC/openSUSE:Factory/.libinput.new.2352 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "libinput" Wed Oct 23 15:36:38 2019 rev:79 rq:739081 version:1.14.2 Changes: -------- --- /work/SRC/openSUSE:Factory/libinput/libinput.changes 2019-08-27 15:48:57.595846393 +0200 +++ /work/SRC/openSUSE:Factory/.libinput.new.2352/libinput.changes 2019-10-23 15:36:40.449738402 +0200 @@ -1,0 +2,11 @@ +Thu Oct 17 07:35:26 UTC 2019 - Jan Engelhardt <jengelh@inai.de> + +- Update to release 1.14.2 + * Added quirks for specific devices, notably the Logitech MX + Master 2S and 3, Thinkpad 13 G2, HP Elite x2 1013 G3 and the + Lenovo T490s and X200. + * For everyone else, the thumb detection is now less + aggressive, fixing a few issues seen where two-finger + scrolling was misdetected as pinch gestures. + +------------------------------------------------------------------- Old: ---- libinput-1.14.1.tar.xz libinput-1.14.1.tar.xz.sig New: ---- libinput-1.14.2.tar.xz libinput-1.14.2.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libinput.spec ++++++ --- /var/tmp/diff_new_pack.4zHvvU/_old 2019-10-23 15:36:41.081739128 +0200 +++ /var/tmp/diff_new_pack.4zHvvU/_new 2019-10-23 15:36:41.081739128 +0200 @@ -18,12 +18,12 @@ Name: libinput %define lname libinput10 -Version: 1.14.1 +Version: 1.14.2 Release: 0 Summary: Input device and event processing library License: MIT -Group: Development/Libraries/C and C++ -Url: http://www.freedesktop.org/wiki/Software/libinput/ +Group: c development hardware +URL: https://www.freedesktop.org/wiki/Software/libinput/ #Git-Clone: https://gitlab.freedesktop.org/libinput/libinput.git #Git-Web: https://gitlab.freedesktop.org/libinput/libinput/ @@ -56,7 +56,7 @@ %package udev Summary: Input device and event processing library integration into udev -Group: System/Base +Group: base %description udev The libinput udev helper rule will set the LIBINPUT_DEVICE_GROUP @@ -66,7 +66,7 @@ %package -n %lname Summary: Input device and event processing library -Group: System/Libraries +Group: c development hardware Recommends: %name-udev %description -n %lname @@ -80,7 +80,7 @@ %package tools Summary: Utilities to display libinput configuration -Group: System/X11/Utilities +Group: hardware %description tools This tool lists the locally recognised devices and their respective @@ -88,7 +88,7 @@ %package devel Summary: Development files for the Input Device Library -Group: Development/Libraries/C and C++ +Group: c development Requires: %lname = %version %description devel ++++++ libinput-1.14.1.tar.xz -> libinput-1.14.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.1/meson.build new/libinput-1.14.2/meson.build --- old/libinput-1.14.1/meson.build 2019-08-26 04:49:02.000000000 +0200 +++ new/libinput-1.14.2/meson.build 2019-10-17 03:26:59.000000000 +0200 @@ -1,5 +1,5 @@ project('libinput', 'c', - version : '1.14.1', + version : '1.14.2', 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.1/quirks/30-vendor-logitech.quirks new/libinput-1.14.2/quirks/30-vendor-logitech.quirks --- old/libinput-1.14.1/quirks/30-vendor-logitech.quirks 2019-08-26 04:49:02.000000000 +0200 +++ new/libinput-1.14.2/quirks/30-vendor-logitech.quirks 2019-10-17 03:26:59.000000000 +0200 @@ -45,3 +45,13 @@ MatchVendor=0x046D MatchProduct=0x4011 AttrPalmPressureThreshold=400 + +[Logitech MX Master 2S] +MatchVendor=0x46D +MatchProduct=0x4069 +ModelInvertHorizontalScrolling=1 + +[Logitech MX Master 3] +MatchVendor=0x46D +MatchProduct=0x4082 +ModelInvertHorizontalScrolling=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.1/quirks/50-system-hp.quirks new/libinput-1.14.2/quirks/50-system-hp.quirks --- old/libinput-1.14.1/quirks/50-system-hp.quirks 2019-08-26 04:49:02.000000000 +0200 +++ new/libinput-1.14.2/quirks/50-system-hp.quirks 2019-10-17 03:26:59.000000000 +0200 @@ -41,3 +41,21 @@ AttrPressureRange=55:40 AttrThumbPressureThreshold=90 AttrPalmPressureThreshold=100 + +[HP Elite x2 1013 G3 Tablet Mode Switch] +MatchName=*Intel Virtual Button* +MatchDMIModalias=dmi:*svnHP:pnHPElitex21013G3:* +ModelTabletModeSwitchUnreliable=1 + +[HP Elite x2 1013 G3 Touchpad] +MatchUdevType=touchpad +MatchBus=usb +MatchVendor=0x044E +MatchProduct=0x1221 +AttrTPKComboLayout=below + +[HP Elite x2 1013 G3 Keyboard] +MatchUdevType=keyboard +MatchBus=ps2 +MatchDMIModalias=dmi:*svnHP:pnHPElitex21013G3:* +AttrKeyboardIntegration=external \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.1/quirks/50-system-lenovo.quirks new/libinput-1.14.2/quirks/50-system-lenovo.quirks --- old/libinput-1.14.1/quirks/50-system-lenovo.quirks 2019-08-26 04:49:02.000000000 +0200 +++ new/libinput-1.14.2/quirks/50-system-lenovo.quirks 2019-10-17 03:26:59.000000000 +0200 @@ -5,6 +5,12 @@ MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPad*:* AttrThumbPressureThreshold=100 +[Lenovo ThinkPad 13 2nd Generation TrackPoint] +MatchUdevType=pointingstick +MatchName=*ETPS/2 Elantech TrackPoint* +MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPad132ndGen* +AttrTrackpointMultiplier=1.75 + [Lenovo x230 Touchpad] MatchName=*SynPS/2 Synaptics TouchPad MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadX230* @@ -30,6 +36,16 @@ MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadT480s* ModelLenovoT480sTouchpad=1 +[Lenovo T490s Touchpad] +MatchName=Elan Touchpad +MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadT490s* +ModelLenovoT490sTouchpad=1 + +[Lenovo T490s Trackpoint] +MatchName=*TPPS/2 IBM TrackPoint +MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadT490s:* +AttrTrackpointMultiplier=0.4 + [Lenovo L380 Touchpad] MatchName=Elan Touchpad MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadL380* @@ -146,6 +162,13 @@ MatchDMIModalias=dmi:*svnLENOVO:*pvrThinkPadX230Tablet:* ModelTabletModeNoSuspend=1 +# Special bezel button deactivation with +# keyboard also applies to X200 Tablet +[Lenovo X200 Tablet] +MatchName=AT Translated Set 2 keyboard +MatchDMIModalias=dmi:*svnLENOVO:*pvrThinkPadX200Tablet:* +ModelTabletModeNoSuspend=1 + # Lenovo MIIX 720 comes with a detachable keyboard. We must not disable # the keyboard because some keys are still accessible on the screen and # volume rocker. See diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.1/src/evdev-mt-touchpad-gestures.c new/libinput-1.14.2/src/evdev-mt-touchpad-gestures.c --- old/libinput-1.14.1/src/evdev-mt-touchpad-gestures.c 2019-08-26 04:49:02.000000000 +0200 +++ new/libinput-1.14.2/src/evdev-mt-touchpad-gestures.c 2019-10-17 03:26:59.000000000 +0200 @@ -481,6 +481,12 @@ double inner = 1.5; /* inner threshold in mm - count this touch */ double outer = 4.0; /* outer threshold in mm - ignore other touch */ + /* If we have more fingers than slots, we don't know where the + * fingers are. Default to swipe */ + if (tp->gesture.enabled && tp->gesture.finger_count > 2 && + tp->gesture.finger_count > tp->num_slots) + return GESTURE_STATE_SWIPE; + /* Need more margin for error when there are more fingers */ outer += 2.0 * (tp->gesture.finger_count - 2); inner += 0.5 * (tp->gesture.finger_count - 2); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.1/src/evdev-mt-touchpad-thumb.c new/libinput-1.14.2/src/evdev-mt-touchpad-thumb.c --- old/libinput-1.14.1/src/evdev-mt-touchpad-thumb.c 2019-08-26 04:49:02.000000000 +0200 +++ new/libinput-1.14.2/src/evdev-mt-touchpad-thumb.c 2019-10-17 03:26:59.000000000 +0200 @@ -335,15 +335,18 @@ /* Position-based thumb detection: When a new touch arrives, check the * two lowest touches. If they qualify for 2-finger scrolling, clear - * thumb status. If not, mark the lower touch (based on pinch_eligible) - * as either PINCH or SUPPRESSED. + * thumb status. + * + * If they were in distinct diagonal position, then mark the lower + * touch (based on pinch_eligible) as either PINCH or SUPPRESSED. If + * we're too close together for a thumb, lift that. */ - if (mm.y > SCROLL_MM_Y) { + if (mm.y > SCROLL_MM_Y && mm.x > SCROLL_MM_X) { if (tp->thumb.pinch_eligible) tp_thumb_pinch(tp, first); else tp_thumb_suppress(tp, first); - } else { + } else if (mm.x < SCROLL_MM_X && mm.y < SCROLL_MM_Y) { tp_thumb_lift(tp); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.1/src/evdev.c new/libinput-1.14.2/src/evdev.c --- old/libinput-1.14.1/src/evdev.c 2019-08-26 04:49:02.000000000 +0200 +++ new/libinput-1.14.2/src/evdev.c 2019-10-17 03:26:59.000000000 +0200 @@ -357,6 +357,11 @@ struct normalized_coords delta = *delta_in; struct discrete_coords discrete = *discrete_in; + if (device->scroll.invert_horizontal_scrolling) { + delta.x *= -1; + discrete.x *= -1; + } + if (device->scroll.natural_scrolling_enabled) { delta.x *= -1; delta.y *= -1; @@ -1841,6 +1846,10 @@ return NULL; } + if (evdev_device_has_model_quirk(device, QUIRK_MODEL_INVERT_HORIZONTAL_SCROLLING)) { + device->scroll.invert_horizontal_scrolling = true; + } + return fallback_dispatch_create(&device->base); } @@ -1953,6 +1962,7 @@ * https://gitlab.freedesktop.org/libinput/libinput/issues/177 and * https://gitlab.freedesktop.org/libinput/libinput/issues/234 */ if (evdev_device_has_model_quirk(device, QUIRK_MODEL_LENOVO_T480S_TOUCHPAD) || + evdev_device_has_model_quirk(device, QUIRK_MODEL_LENOVO_T490S_TOUCHPAD) || evdev_device_has_model_quirk(device, QUIRK_MODEL_LENOVO_L380_TOUCHPAD)) libevdev_enable_property(device->evdev, INPUT_PROP_BUTTONPAD); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.1/src/evdev.h new/libinput-1.14.2/src/evdev.h --- old/libinput-1.14.1/src/evdev.h 2019-08-26 04:49:02.000000000 +0200 +++ new/libinput-1.14.2/src/evdev.h 2019-10-17 03:26:59.000000000 +0200 @@ -216,6 +216,10 @@ * used at runtime to enable/disable the feature */ bool natural_scrolling_enabled; + /* set during device init to invert direction of + * horizontal scrolling */ + bool invert_horizontal_scrolling; + /* angle per REL_WHEEL click in degrees */ struct wheel_angle wheel_click_angle; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.1/src/quirks.c new/libinput-1.14.2/src/quirks.c --- old/libinput-1.14.1/src/quirks.c 2019-08-26 04:49:02.000000000 +0200 +++ new/libinput-1.14.2/src/quirks.c 2019-10-17 03:26:59.000000000 +0200 @@ -239,10 +239,12 @@ case QUIRK_MODEL_HP_PAVILION_DM4_TOUCHPAD: return "ModelHPPavilionDM4Touchpad"; case QUIRK_MODEL_HP_STREAM11_TOUCHPAD: return "ModelHPStream11Touchpad"; case QUIRK_MODEL_HP_ZBOOK_STUDIO_G3: return "ModelHPZBookStudioG3"; + case QUIRK_MODEL_INVERT_HORIZONTAL_SCROLLING: return "ModelInvertHorizontalScrolling"; case QUIRK_MODEL_LENOVO_L380_TOUCHPAD: return "ModelLenovoL380Touchpad"; case QUIRK_MODEL_LENOVO_SCROLLPOINT: return "ModelLenovoScrollPoint"; case QUIRK_MODEL_LENOVO_T450_TOUCHPAD: return "ModelLenovoT450Touchpad"; case QUIRK_MODEL_LENOVO_T480S_TOUCHPAD: return "ModelLenovoT480sTouchpad"; + case QUIRK_MODEL_LENOVO_T490S_TOUCHPAD: return "ModelLenovoT490sTouchpad"; case QUIRK_MODEL_LENOVO_X230: return "ModelLenovoX230"; case QUIRK_MODEL_SYNAPTICS_SERIAL_TOUCHPAD: return "ModelSynapticsSerialTouchpad"; case QUIRK_MODEL_SYSTEM76_BONOBO: return "ModelSystem76Bonobo"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.1/src/quirks.h new/libinput-1.14.2/src/quirks.h --- old/libinput-1.14.1/src/quirks.h 2019-08-26 04:49:02.000000000 +0200 +++ new/libinput-1.14.2/src/quirks.h 2019-10-17 03:26:59.000000000 +0200 @@ -71,10 +71,12 @@ QUIRK_MODEL_HP_PAVILION_DM4_TOUCHPAD, QUIRK_MODEL_HP_STREAM11_TOUCHPAD, QUIRK_MODEL_HP_ZBOOK_STUDIO_G3, + QUIRK_MODEL_INVERT_HORIZONTAL_SCROLLING, QUIRK_MODEL_LENOVO_L380_TOUCHPAD, QUIRK_MODEL_LENOVO_SCROLLPOINT, QUIRK_MODEL_LENOVO_T450_TOUCHPAD, QUIRK_MODEL_LENOVO_T480S_TOUCHPAD, + QUIRK_MODEL_LENOVO_T490S_TOUCHPAD, QUIRK_MODEL_LENOVO_X230, QUIRK_MODEL_SYNAPTICS_SERIAL_TOUCHPAD, QUIRK_MODEL_SYSTEM76_BONOBO, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.1/test/litest-int.h new/libinput-1.14.2/test/litest-int.h --- old/libinput-1.14.1/test/litest-int.h 2019-08-26 04:49:02.000000000 +0200 +++ new/libinput-1.14.2/test/litest-int.h 2019-10-17 03:26:59.000000000 +0200 @@ -77,7 +77,7 @@ const char *udev_rule; const char *quirk_file; - const struct key_value_str udev_properties[]; + const struct key_value_str udev_properties[32]; }; struct litest_device_interface { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.14.1/test/test-gestures.c new/libinput-1.14.2/test/test-gestures.c --- old/libinput-1.14.1/test/test-gestures.c 2019-08-26 04:49:02.000000000 +0200 +++ new/libinput-1.14.2/test/test-gestures.c 2019-10-17 03:26:59.000000000 +0200 @@ -259,6 +259,58 @@ } END_TEST +START_TEST(gestures_swipe_3fg_btntool_pinch_like) +{ + struct litest_device *dev = litest_current_device(); + struct libinput *li = dev->libinput; + struct libinput_event *event; + struct libinput_event_gesture *gevent; + + if (libevdev_get_num_slots(dev->evdev) > 2 || + !libevdev_has_event_code(dev->evdev, EV_KEY, BTN_TOOL_TRIPLETAP) || + !libinput_device_has_capability(dev->libinput_device, + LIBINPUT_DEVICE_CAP_GESTURE)) + return; + + litest_drain_events(li); + + /* Technically a pinch position + pinch movement, but expect swipe + * for nfingers > nslots */ + litest_touch_down(dev, 0, 20, 60); + litest_touch_down(dev, 1, 50, 20); + litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 0); + litest_event(dev, EV_KEY, BTN_TOOL_TRIPLETAP, 1); + litest_event(dev, EV_SYN, SYN_REPORT, 0); + + libinput_dispatch(li); + litest_touch_move_to(dev, 0, 20, 60, 10, 80, 20); + libinput_dispatch(li); + + event = libinput_get_event(li); + gevent = litest_is_gesture_event(event, + LIBINPUT_EVENT_GESTURE_SWIPE_BEGIN, + 3); + libinput_event_destroy(event); + + while ((event = libinput_get_event(li)) != NULL) { + gevent = litest_is_gesture_event(event, + LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE, + 3); + libinput_event_destroy(event); + } + + litest_touch_up(dev, 0); + litest_touch_up(dev, 1); + libinput_dispatch(li); + event = libinput_get_event(li); + gevent = litest_is_gesture_event(event, + LIBINPUT_EVENT_GESTURE_SWIPE_END, + 3); + ck_assert(!libinput_event_gesture_get_cancelled(gevent)); + libinput_event_destroy(event); +} +END_TEST + START_TEST(gestures_swipe_4fg) { struct litest_device *dev = litest_current_device(); @@ -1021,6 +1073,7 @@ litest_add_ranged("gestures:swipe", gestures_swipe_3fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); litest_add_ranged("gestures:swipe", gestures_swipe_3fg_btntool, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); + litest_add("gestures:swipe", gestures_swipe_3fg_btntool_pinch_like, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH); litest_add_ranged("gestures:swipe", gestures_swipe_4fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); litest_add_ranged("gestures:swipe", gestures_swipe_4fg_btntool, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); litest_add_ranged("gestures:pinch", gestures_pinch, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals);
participants (1)
-
root