diff --git a/doc/user/scrolling.rst b/doc/user/scrolling.rst index 2adec76f..ddc47b4a 100644 --- a/doc/user/scrolling.rst +++ b/doc/user/scrolling.rst @@ -124,6 +124,12 @@ button lock, the button is now considered logically held down. Pressing and releasing the button a second time logically releases the button. While the button is logically held down, motion events are converted to scroll events. +If the button is held and used to scroll for longer than a short grace +period, releasing the button does not engage the lock. This allows +hold-to-scroll for short, precise adjustments without accidentally toggling +the lock. A quick click or a brief scroll within the grace period still +engages the lock as normal. + .. _scroll_sources: ------------------------------------------------------------------------------ diff --git a/quirks/30-vendor-goodix.quirks b/quirks/30-vendor-goodix.quirks index b7aab62b..94c3637b 100644 --- a/quirks/30-vendor-goodix.quirks +++ b/quirks/30-vendor-goodix.quirks @@ -2,6 +2,15 @@ # "GXTP5100 Touchpad": pressure touchpad mostly used in Lenovo laptops. # Match vid and pid as it can have other names. +[Goodix Haptic Touchpad (27C6:01E7)] +MatchBus=i2c +MatchVendor=0x27C6 +MatchProduct=0x01E7 +MatchUdevType=touchpad +AttrInputProp=+INPUT_PROP_PRESSUREPAD + +# "GXTP5100 Touchpad": pressure touchpad mostly used in Lenovo laptops. +# GXTP5100:00 27C6:01E8 Touchpad [Goodix Haptic Touchpad (27C6:01E8)] MatchBus=i2c MatchVendor=0x27C6 @@ -9,6 +18,33 @@ MatchProduct=0x01E8 MatchUdevType=touchpad AttrInputProp=+INPUT_PROP_PRESSUREPAD +# "GXTP5100 Touchpad": pressure touchpad mostly used in Lenovo laptops. +# GXTP5100:00 27C6:01E9 Touchpad +[Goodix Haptic Touchpad (27C6:01E9)] +MatchBus=i2c +MatchVendor=0x27C6 +MatchProduct=0x01E9 +MatchUdevType=touchpad +AttrInputProp=+INPUT_PROP_PRESSUREPAD + +# "GXTP5100 Touchpad": pressure touchpad mostly used in Lenovo laptops. +# GXTP5100:00 27C6:01EA Touchpad +[Goodix Haptic Touchpad (27C6:01EA)] +MatchBus=i2c +MatchVendor=0x27C6 +MatchProduct=0x01EA +MatchUdevType=touchpad +AttrInputProp=+INPUT_PROP_PRESSUREPAD + +# "GXTP5100 Touchpad": pressure touchpad mostly used in Lenovo laptops. +# GXTP5100:00 27C6:01EB Touchpad +[Goodix Haptic Touchpad (27C6:01EB)] +MatchBus=i2c +MatchVendor=0x27C6 +MatchProduct=0x01EB +MatchUdevType=touchpad +AttrInputProp=+INPUT_PROP_PRESSUREPAD + # "GXTP5420 Touchpad": pressure touchpad mostly used in Lenovo laptops. # GXTP5420:00 27C6:0F95 Touchpad [Goodix Haptic Touchpad (27C6:0F95)] diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c index e60ced9b..dafc0000 100644 --- a/src/evdev-mt-touchpad.c +++ b/src/evdev-mt-touchpad.c @@ -2678,6 +2678,22 @@ evdev_tag_touchpad(struct evdev_device *device, struct udev_device *udev_device) int bustype, vendor; const char *prop; + prop = udev_device_get_property_value(udev_device, "ID_INTEGRATION"); + if (prop) { + if (streq(prop, "internal")) { + evdev_tag_touchpad_internal(device); + return; + } + + if (streq(prop, "external")) { + evdev_tag_touchpad_external(device); + return; + } + + evdev_log_info(device, "tagged with unknown value %s\n", prop); + } + + /* Fall back to ID_TOUCHPAD_INTEGRATION if ID_INTEGRATION is missing */ prop = udev_device_get_property_value(udev_device, "ID_INPUT_TOUCHPAD_INTEGRATION"); if (prop) { diff --git a/src/evdev.c b/src/evdev.c index c08d0291..6c5ec1e5 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -54,6 +54,7 @@ #define DEFAULT_WHEEL_CLICK_ANGLE 15 #define DEFAULT_BUTTON_SCROLL_TIMEOUT usec_from_millis(200) +#define SCROLL_BUTTON_LOCK_GRACE_TIMEOUT usec_from_millis(500) enum evdev_device_udev_tags { EVDEV_UDEV_TAG_NONE = 0, @@ -228,6 +229,15 @@ evdev_button_scroll_button(struct evdev_device *device, usec_t time, int is_pres break; /* handle event */ case BUTTONSCROLL_LOCK_FIRSTDOWN: assert(!is_press); + if (device->scroll.button_scroll_state == BUTTONSCROLL_SCROLLING && + usec_cmp(usec_delta(time, device->scroll.button_down_time), + SCROLL_BUTTON_LOCK_GRACE_TIMEOUT) >= 0) { + /* held + scrolled past grace period: temporary scroll, + * no lock engaged */ + device->scroll.lock_state = BUTTONSCROLL_LOCK_IDLE; + evdev_log_debug(device, "scroll lock: temp scroll done\n"); + break; /* pass release through */ + } device->scroll.lock_state = BUTTONSCROLL_LOCK_FIRSTUP; evdev_log_debug(device, "scroll lock: first up\n"); return; /* filter release event */ @@ -489,6 +499,7 @@ static void evdev_tag_trackpoint(struct evdev_device *device, struct udev_device *udev_device) { char *prop; + const char *udev_prop; if (!libevdev_has_property(device->evdev, INPUT_PROP_POINTING_STICK) && !parse_udev_flag(device, udev_device, "ID_INPUT_POINTINGSTICK")) @@ -496,10 +507,22 @@ evdev_tag_trackpoint(struct evdev_device *device, struct udev_device *udev_devic device->tags |= EVDEV_TAG_TRACKPOINT; + udev_prop = udev_device_get_property_value(udev_device, "ID_INTEGRATION"); + if (udev_prop) { + if (streq(udev_prop, "internal")) { + /* noop, this is the default anyway */ + } else if (streq(udev_prop, "external")) + device->tags |= EVDEV_TAG_EXTERNAL_MOUSE; + else + evdev_log_info(device, + "tagged with unknown value %s\n", + udev_prop); + } + _unref_(quirks) *q = libinput_device_get_quirks(&device->base); if (q && quirks_get_string(q, QUIRK_ATTR_TRACKPOINT_INTEGRATION, &prop)) { if (streq(prop, "internal")) { - /* noop, this is the default anyway */ + device->tags &= ~EVDEV_TAG_EXTERNAL_MOUSE; } else if (streq(prop, "external")) { device->tags |= EVDEV_TAG_EXTERNAL_MOUSE; evdev_log_info(device, "is an external pointing stick\n"); @@ -527,6 +550,7 @@ static void evdev_tag_keyboard(struct evdev_device *device, struct udev_device *udev_device) { char *prop; + const char *udev_prop; int code; if (!libevdev_has_event_type(device->evdev, EV_KEY)) @@ -537,6 +561,18 @@ evdev_tag_keyboard(struct evdev_device *device, struct udev_device *udev_device) return; } + udev_prop = udev_device_get_property_value(udev_device, "ID_INTEGRATION"); + if (udev_prop) { + if (streq(udev_prop, "internal")) + evdev_tag_keyboard_internal(device); + else if (streq(udev_prop, "external")) + evdev_tag_keyboard_external(device); + else + evdev_log_info(device, + "tagged with unknown value %s\n", + udev_prop); + } + _unref_(quirks) *q = libinput_device_get_quirks(&device->base); if (q && quirks_get_string(q, QUIRK_ATTR_KEYBOARD_INTEGRATION, &prop)) { if (streq(prop, "internal")) { diff --git a/src/libinput.h b/src/libinput.h index 70a87e1b..481cbd69 100644 --- a/src/libinput.h +++ b/src/libinput.h @@ -6624,7 +6624,9 @@ enum libinput_config_scroll_button_lock_state { * If the state is * @ref LIBINPUT_CONFIG_SCROLL_BUTTON_LOCK_ENABLED, the button is considered * logically down after the first press and release sequence, and logically - * up after the second press and release sequence. + * up after the second press and release sequence. If the button is held + * and used to scroll for longer than a short grace period, releasing the + * button does not engage the lock. * * @param device The device to configure * @param state The state to set the scroll button lock to diff --git a/test/litest-device-absinfo-override.c b/test/litest-device-absinfo-override.c index a92acc2f..35619e41 100644 --- a/test/litest-device-absinfo-override.c +++ b/test/litest-device-absinfo-override.c @@ -75,5 +75,6 @@ TEST_DEVICE(LITEST_ABSINFO_OVERRIDE, { "EVDEV_ABS_01", "2:2000:200:20" }, { "EVDEV_ABS_35", "3:3000:300:30" }, { "EVDEV_ABS_36", "4:4000:400:40" }, + { "ID_INTEGRATION", "internal" }, { NULL }, }, ) diff --git a/test/litest-device-acer-hawaii-keyboard.c b/test/litest-device-acer-hawaii-keyboard.c index 9538b8ed..5608c0de 100644 --- a/test/litest-device-acer-hawaii-keyboard.c +++ b/test/litest-device-acer-hawaii-keyboard.c @@ -197,4 +197,8 @@ TEST_DEVICE(LITEST_ACER_HAWAII_KEYBOARD, .name = "Chicony ACER Hawaii Keyboard", .id = &input_id, .events = events, - .absinfo = NULL, ) + .absinfo = NULL, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-acer-hawaii-touchpad.c b/test/litest-device-acer-hawaii-touchpad.c index 290496b5..9b442619 100644 --- a/test/litest-device-acer-hawaii-touchpad.c +++ b/test/litest-device-acer-hawaii-touchpad.c @@ -93,4 +93,8 @@ TEST_DEVICE(LITEST_ACER_HAWAII_TOUCHPAD, .name = "Chicony ACER Hawaii Keyboard Touchpad", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-aiptek-tablet.c b/test/litest-device-aiptek-tablet.c index c2650381..62498094 100644 --- a/test/litest-device-aiptek-tablet.c +++ b/test/litest-device-aiptek-tablet.c @@ -157,4 +157,8 @@ TEST_DEVICE(LITEST_AIPTEK, .name = "Aiptek", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-alps-3fg.c b/test/litest-device-alps-3fg.c index f6d2f7c5..d39193d4 100644 --- a/test/litest-device-alps-3fg.c +++ b/test/litest-device-alps-3fg.c @@ -173,4 +173,8 @@ TEST_DEVICE(LITEST_ALPS_3FG, .id = &input_id, .events = events, .absinfo = absinfo, - .create = alps_create, ) + .create = alps_create, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-alps-dualpoint.c b/test/litest-device-alps-dualpoint.c index e48b4fbf..2bdd8de1 100644 --- a/test/litest-device-alps-dualpoint.c +++ b/test/litest-device-alps-dualpoint.c @@ -120,4 +120,8 @@ TEST_DEVICE(LITEST_ALPS_DUALPOINT, .id = &input_id, .events = events, .absinfo = absinfo, - .quirk_file = quirk_file, ) + .quirk_file = quirk_file, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-alps-semi-mt.c b/test/litest-device-alps-semi-mt.c index bec3aea6..84073494 100644 --- a/test/litest-device-alps-semi-mt.c +++ b/test/litest-device-alps-semi-mt.c @@ -113,4 +113,8 @@ TEST_DEVICE(LITEST_ALPS_SEMI_MT, .name = "AlpsPS/2 ALPS GlidePoint", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-anker-mouse-kbd.c b/test/litest-device-anker-mouse-kbd.c index 118e59f3..c39c4f57 100644 --- a/test/litest-device-anker-mouse-kbd.c +++ b/test/litest-device-anker-mouse-kbd.c @@ -218,4 +218,8 @@ TEST_DEVICE(LITEST_ANKER_MOUSE_KBD, .name = "USB Laser Game Mouse", .id = &input_id, .absinfo = absinfo, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-apple-appletouch.c b/test/litest-device-apple-appletouch.c index 6d93ef89..893d2503 100644 --- a/test/litest-device-apple-appletouch.c +++ b/test/litest-device-apple-appletouch.c @@ -100,4 +100,8 @@ TEST_DEVICE(LITEST_APPLETOUCH, .id = &input_id, .events = events, .absinfo = absinfo, - .quirk_file = quirk_file, ) + .quirk_file = quirk_file, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-apple-internal-keyboard.c b/test/litest-device-apple-internal-keyboard.c index e1ff1bf3..ac86db0a 100644 --- a/test/litest-device-apple-internal-keyboard.c +++ b/test/litest-device-apple-internal-keyboard.c @@ -226,4 +226,8 @@ TEST_DEVICE(LITEST_APPLE_KEYBOARD, .name = "Apple Inc. Apple Internal Keyboard / Trackpad", .id = &input_id, .events = events, - .absinfo = NULL, ) + .absinfo = NULL, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-apple-magicmouse.c b/test/litest-device-apple-magicmouse.c index b612dfb2..9e06fdc7 100644 --- a/test/litest-device-apple-magicmouse.c +++ b/test/litest-device-apple-magicmouse.c @@ -100,5 +100,6 @@ TEST_DEVICE(LITEST_MAGICMOUSE, * re-writing those, so let's assume the default */ .udev_properties = { { "MOUSE_DPI", "1000" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-asus-rog-gladius.c b/test/litest-device-asus-rog-gladius.c index 8a966a91..545d5c34 100644 --- a/test/litest-device-asus-rog-gladius.c +++ b/test/litest-device-asus-rog-gladius.c @@ -323,4 +323,8 @@ TEST_DEVICE(LITEST_MOUSE_GLADIUS, .name = "ASUS ROG GLADIUS", .id = &input_id, .absinfo = absinfo, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-atmel-hover.c b/test/litest-device-atmel-hover.c index c7eff53d..bcffacc0 100644 --- a/test/litest-device-atmel-hover.c +++ b/test/litest-device-atmel-hover.c @@ -132,4 +132,8 @@ TEST_DEVICE(LITEST_ATMEL_HOVER, .name = "Atmel maXTouch Touchpad", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-bcm5974.c b/test/litest-device-bcm5974.c index 5b4de97c..ed1a6702 100644 --- a/test/litest-device-bcm5974.c +++ b/test/litest-device-bcm5974.c @@ -127,4 +127,8 @@ TEST_DEVICE(LITEST_BCM5974, .name = "bcm5974", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-calibrated-touchscreen.c b/test/litest-device-calibrated-touchscreen.c index ae99ec84..eb789c77 100644 --- a/test/litest-device-calibrated-touchscreen.c +++ b/test/litest-device-calibrated-touchscreen.c @@ -85,5 +85,6 @@ TEST_DEVICE(LITEST_CALIBRATED_TOUCHSCREEN, .udev_properties = { { "LIBINPUT_CALIBRATION_MATRIX", "1.2 3.4 5.6 7.8 9.10 11.12" }, { "WL_OUTPUT", "myOutput" }, + { "ID_INTEGRATION", "internal" }, { NULL }, }, ) diff --git a/test/litest-device-cyborg-rat-5.c b/test/litest-device-cyborg-rat-5.c index d1a5b49d..0d12dfd1 100644 --- a/test/litest-device-cyborg-rat-5.c +++ b/test/litest-device-cyborg-rat-5.c @@ -58,4 +58,8 @@ TEST_DEVICE(LITEST_CYBORG_RAT, .name = "Saitek Cyborg R.A.T.5 Mouse", .id = &input_id, .absinfo = NULL, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-dell-canvas-totem-touch.c b/test/litest-device-dell-canvas-totem-touch.c index d3fb7096..df48d4fa 100644 --- a/test/litest-device-dell-canvas-totem-touch.c +++ b/test/litest-device-dell-canvas-totem-touch.c @@ -90,5 +90,6 @@ TEST_DEVICE(LITEST_DELL_CANVAS_TOTEM_TOUCH, .absinfo = absinfo, .udev_properties = { { "LIBINPUT_DEVICE_GROUP", "dell-canvas-totem-group" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-dell-canvas-totem.c b/test/litest-device-dell-canvas-totem.c index 4151d383..99d12cdf 100644 --- a/test/litest-device-dell-canvas-totem.c +++ b/test/litest-device-dell-canvas-totem.c @@ -127,5 +127,6 @@ TEST_DEVICE(LITEST_DELL_CANVAS_TOTEM, .absinfo = absinfo, .udev_properties = { { "LIBINPUT_DEVICE_GROUP", "dell-canvas-totem-group" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-elan-tablet.c b/test/litest-device-elan-tablet.c index 3ba78498..efa8e2d7 100644 --- a/test/litest-device-elan-tablet.c +++ b/test/litest-device-elan-tablet.c @@ -146,4 +146,8 @@ TEST_DEVICE(LITEST_ELAN_TABLET, .name = "ELAN2514:00 04F3:23B9", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-elantech-touchpad.c b/test/litest-device-elantech-touchpad.c index 2c727b9c..cf3633ae 100644 --- a/test/litest-device-elantech-touchpad.c +++ b/test/litest-device-elantech-touchpad.c @@ -109,4 +109,8 @@ TEST_DEVICE(LITEST_ELANTECH_TOUCHPAD, .name = "ETPS/2 Elantech Touchpad", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-format-string.c b/test/litest-device-format-string.c index b096254c..9bcb9cdb 100644 --- a/test/litest-device-format-string.c +++ b/test/litest-device-format-string.c @@ -53,4 +53,8 @@ TEST_DEVICE(LITEST_MOUSE_FORMAT_STRING, .name = "Evil %s %d %x Mouse %p %", .id = &input_id, .absinfo = NULL, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-generic-pressurepad.c b/test/litest-device-generic-pressurepad.c index 953087e7..1bc76507 100644 --- a/test/litest-device-generic-pressurepad.c +++ b/test/litest-device-generic-pressurepad.c @@ -123,4 +123,8 @@ TEST_DEVICE(LITEST_GENERIC_PRESSUREPAD, .name = "Some Generic Pressurepad Touchpad", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-generic-singletouch.c b/test/litest-device-generic-singletouch.c index 4185c20b..58eccd90 100644 --- a/test/litest-device-generic-singletouch.c +++ b/test/litest-device-generic-singletouch.c @@ -76,4 +76,8 @@ TEST_DEVICE(LITEST_GENERIC_SINGLETOUCH, .name = "generic_singletouch", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-generic-usb-keyboard.c b/test/litest-device-generic-usb-keyboard.c index 5a206da6..c440bb2e 100644 --- a/test/litest-device-generic-usb-keyboard.c +++ b/test/litest-device-generic-usb-keyboard.c @@ -198,4 +198,8 @@ TEST_DEVICE(LITEST_GENERIC_USBCOMBO_KEYBOARD, .name = "Generic USB KeyTouch Combo", .id = &input_id, .events = events, - .absinfo = NULL, ) + .absinfo = NULL, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-generic-usb-touchpad.c b/test/litest-device-generic-usb-touchpad.c index a2cf0bf4..4dfad7d0 100644 --- a/test/litest-device-generic-usb-touchpad.c +++ b/test/litest-device-generic-usb-touchpad.c @@ -100,7 +100,7 @@ TEST_DEVICE(LITEST_GENERIC_USBCOMBO_TOUCHPAD, .events = events, .absinfo = absinfo, .udev_properties = { - { "ID_INPUT_TOUCHPAD_INTEGRATION", "external" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, .quirk_file = quirk_file, ) diff --git a/test/litest-device-gpio-keys.c b/test/litest-device-gpio-keys.c index be2a3f7c..65b1a7fa 100644 --- a/test/litest-device-gpio-keys.c +++ b/test/litest-device-gpio-keys.c @@ -61,5 +61,6 @@ TEST_DEVICE(LITEST_GPIO_KEYS, .quirk_file = quirk_file, .udev_properties = { { "ID_INPUT_SWITCH", "1" }, + { "ID_INTEGRATION", "internal" }, { NULL }, }) diff --git a/test/litest-device-hp-wmi-hotkeys.c b/test/litest-device-hp-wmi-hotkeys.c index 27a18917..ed3efcc9 100644 --- a/test/litest-device-hp-wmi-hotkeys.c +++ b/test/litest-device-hp-wmi-hotkeys.c @@ -60,5 +60,6 @@ TEST_DEVICE(LITEST_HP_WMI_HOTKEYS, .udev_properties = { { "ID_INPUT_SWITCH", "1" }, + { "ID_INTEGRATION", "internal" }, { NULL }, }) diff --git a/test/litest-device-huion-pentablet.c b/test/litest-device-huion-pentablet.c index 91455d6f..63de14a5 100644 --- a/test/litest-device-huion-pentablet.c +++ b/test/litest-device-huion-pentablet.c @@ -108,4 +108,8 @@ TEST_DEVICE(LITEST_HUION_TABLET, .name = "HUION PenTablet Pen", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-huion-q620m-dial.c b/test/litest-device-huion-q620m-dial.c index 7998282c..8300910f 100644 --- a/test/litest-device-huion-q620m-dial.c +++ b/test/litest-device-huion-q620m-dial.c @@ -78,5 +78,6 @@ TEST_DEVICE(LITEST_HUION_Q620M_DIAL, .absinfo = absinfo, .udev_properties = { { "ID_INPUT_TABLET_PAD", "1" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-ignored-mouse.c b/test/litest-device-ignored-mouse.c index 08b9b81e..653ab57e 100644 --- a/test/litest-device-ignored-mouse.c +++ b/test/litest-device-ignored-mouse.c @@ -54,5 +54,6 @@ TEST_DEVICE(LITEST_IGNORED_MOUSE, .events = events, .udev_properties = { { "LIBINPUT_IGNORE_DEVICE", "1" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-keyboard-all-codes.c b/test/litest-device-keyboard-all-codes.c index 6021991d..f9e6bd36 100644 --- a/test/litest-device-keyboard-all-codes.c +++ b/test/litest-device-keyboard-all-codes.c @@ -45,7 +45,11 @@ TEST_DEVICE(LITEST_KEYBOARD_ALL_CODES, .name = NAME, .id = &input_id, .events = NULL, - .absinfo = NULL, ) + .absinfo = NULL, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) static bool all_codes_create(struct litest_device *d) diff --git a/test/litest-device-keyboard-quirked.c b/test/litest-device-keyboard-quirked.c index 01e678d2..5d8d689e 100644 --- a/test/litest-device-keyboard-quirked.c +++ b/test/litest-device-keyboard-quirked.c @@ -250,4 +250,8 @@ TEST_DEVICE(LITEST_KEYBOARD_QUIRKED, .id = &input_id, .events = events, .absinfo = NULL, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, .quirk_file = quirk_file, ) diff --git a/test/litest-device-keyboard-razer-blackwidow.c b/test/litest-device-keyboard-razer-blackwidow.c index 3d844398..9fc81667 100644 --- a/test/litest-device-keyboard-razer-blackwidow.c +++ b/test/litest-device-keyboard-razer-blackwidow.c @@ -343,4 +343,8 @@ TEST_DEVICE(LITEST_KEYBOARD_BLACKWIDOW, .name = "Razer Razer BlackWidow 2013", .id = &input_id, .absinfo = absinfo, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-keyboard-razer-blade-stealth-videoswitch.c b/test/litest-device-keyboard-razer-blade-stealth-videoswitch.c index beb3a0dc..eee77f89 100644 --- a/test/litest-device-keyboard-razer-blade-stealth-videoswitch.c +++ b/test/litest-device-keyboard-razer-blade-stealth-videoswitch.c @@ -215,4 +215,8 @@ TEST_DEVICE(LITEST_KEYBOARD_BLADE_STEALTH_VIDEOSWITCH, .name = "Razer Razer Blade Stealth", .id = &input_id, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-keyboard-razer-blade-stealth.c b/test/litest-device-keyboard-razer-blade-stealth.c index c79afbed..7edbe304 100644 --- a/test/litest-device-keyboard-razer-blade-stealth.c +++ b/test/litest-device-keyboard-razer-blade-stealth.c @@ -341,4 +341,8 @@ TEST_DEVICE(LITEST_KEYBOARD_BLADE_STEALTH, .name = "Razer Razer Blade Stealth", .id = &input_id, .absinfo = absinfo, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-keyboard.c b/test/litest-device-keyboard.c index 39103f18..9c285137 100644 --- a/test/litest-device-keyboard.c +++ b/test/litest-device-keyboard.c @@ -202,4 +202,8 @@ TEST_DEVICE(LITEST_KEYBOARD, .name = "AT Translated Set 2 keyboard", .id = &input_id, .events = events, - .absinfo = NULL, ) + .absinfo = NULL, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-keypad-slide-switch.c b/test/litest-device-keypad-slide-switch.c index 1b48965f..fbe8288b 100644 --- a/test/litest-device-keypad-slide-switch.c +++ b/test/litest-device-keypad-slide-switch.c @@ -52,5 +52,6 @@ TEST_DEVICE(LITEST_KEYPAD_SLIDE_SWITCH, .udev_properties = { { "ID_INPUT_SWITCH", "1" }, + { "ID_INTEGRATION", "internal" }, { NULL }, }, ) diff --git a/test/litest-device-lenovo-scrollpoint.c b/test/litest-device-lenovo-scrollpoint.c index 351d1eef..704ee00d 100644 --- a/test/litest-device-lenovo-scrollpoint.c +++ b/test/litest-device-lenovo-scrollpoint.c @@ -57,4 +57,8 @@ TEST_DEVICE(LITEST_LENOVO_SCROLLPOINT, .name = "HID 04b3:3109", .id = &input_id, .absinfo = NULL, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-lid-switch-surface3.c b/test/litest-device-lid-switch-surface3.c index 90cd9ae7..1c2c88fd 100644 --- a/test/litest-device-lid-switch-surface3.c +++ b/test/litest-device-lid-switch-surface3.c @@ -57,5 +57,6 @@ TEST_DEVICE(LITEST_LID_SWITCH_SURFACE3, .quirk_file = quirk_file, .udev_properties = { { "ID_INPUT_SWITCH", "1" }, + { "ID_INTEGRATION", "internal" }, { NULL }, }, ) diff --git a/test/litest-device-lid-switch.c b/test/litest-device-lid-switch.c index 4ff20b31..f6494746 100644 --- a/test/litest-device-lid-switch.c +++ b/test/litest-device-lid-switch.c @@ -56,5 +56,6 @@ TEST_DEVICE(LITEST_LID_SWITCH, .quirk_file = quirk_file, .udev_properties = { { "ID_INPUT_SWITCH", "1" }, + { "ID_INTEGRATION", "internal" }, { NULL }, }, ) diff --git a/test/litest-device-logitech-media-keyboard-elite.c b/test/litest-device-logitech-media-keyboard-elite.c index 784f0d44..1e4f6ec1 100644 --- a/test/litest-device-logitech-media-keyboard-elite.c +++ b/test/litest-device-logitech-media-keyboard-elite.c @@ -88,4 +88,8 @@ TEST_DEVICE(LITEST_KEYBOARD_LOGITECH_MEDIA_KEYBOARD_ELITE, .name = "Logitech Logitech USB Keyboard Consumer Control", .id = &input_id, .events = events, - .absinfo = NULL, ) + .absinfo = NULL, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-logitech-trackball.c b/test/litest-device-logitech-trackball.c index 9b47be64..4952a659 100644 --- a/test/litest-device-logitech-trackball.c +++ b/test/litest-device-logitech-trackball.c @@ -52,4 +52,8 @@ TEST_DEVICE(LITEST_LOGITECH_TRACKBALL, .name = "Logitech USB Trackball", .id = &input_id, .absinfo = NULL, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-magic-trackpad.c b/test/litest-device-magic-trackpad.c index 227b20cc..5706c9aa 100644 --- a/test/litest-device-magic-trackpad.c +++ b/test/litest-device-magic-trackpad.c @@ -120,6 +120,6 @@ TEST_DEVICE(LITEST_MAGIC_TRACKPAD, .absinfo = absinfo, .udev_properties = { - { "ID_INPUT_TOUCHPAD_INTEGRATION", "external" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-mouse-low-dpi.c b/test/litest-device-mouse-low-dpi.c index 8ecf8266..c6be286b 100644 --- a/test/litest-device-mouse-low-dpi.c +++ b/test/litest-device-mouse-low-dpi.c @@ -57,5 +57,6 @@ TEST_DEVICE(LITEST_MOUSE_LOW_DPI, .events = events, .udev_properties = { { "MOUSE_DPI", "400@125" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-mouse-ps2.c b/test/litest-device-mouse-ps2.c index 2ce4df3e..35388d85 100644 --- a/test/litest-device-mouse-ps2.c +++ b/test/litest-device-mouse-ps2.c @@ -55,4 +55,8 @@ TEST_DEVICE(LITEST_MOUSE_PS2, .name = "ImExPS/2 Generic Explorer Mouse", .id = &input_id, .absinfo = NULL, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-mouse-roccat.c b/test/litest-device-mouse-roccat.c index 31f92af6..01d90aea 100644 --- a/test/litest-device-mouse-roccat.c +++ b/test/litest-device-mouse-roccat.c @@ -195,4 +195,8 @@ TEST_DEVICE(LITEST_MOUSE_ROCCAT, .name = "ROCCAT ROCCAT Kone XTD", .id = &input_id, .absinfo = absinfo, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-mouse-virtual.c b/test/litest-device-mouse-virtual.c index c3ed94f7..2b5c2316 100644 --- a/test/litest-device-mouse-virtual.c +++ b/test/litest-device-mouse-virtual.c @@ -52,4 +52,8 @@ TEST_DEVICE(LITEST_MOUSE_VIRTUAL, .id = &input_id, .events = events, .absinfo = NULL, - .quirk_file = quirk_file, ) + .quirk_file = quirk_file, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-mouse-wheel-click-angle.c b/test/litest-device-mouse-wheel-click-angle.c index aaf497a8..772f2499 100644 --- a/test/litest-device-mouse-wheel-click-angle.c +++ b/test/litest-device-mouse-wheel-click-angle.c @@ -56,5 +56,6 @@ TEST_DEVICE(LITEST_MOUSE_WHEEL_CLICK_ANGLE, .udev_properties = { { "MOUSE_WHEEL_CLICK_ANGLE", "-7" }, { "MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL", "13" }, + { "ID_INTEGRATION", "external" }, { NULL }, }) diff --git a/test/litest-device-mouse-wheel-click-count.c b/test/litest-device-mouse-wheel-click-count.c index 02dd9eff..14f664f8 100644 --- a/test/litest-device-mouse-wheel-click-count.c +++ b/test/litest-device-mouse-wheel-click-count.c @@ -57,5 +57,6 @@ TEST_DEVICE(LITEST_MOUSE_WHEEL_CLICK_COUNT, { "MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL", "13" }, { "MOUSE_WHEEL_CLICK_COUNT", "-14" }, { "MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL", "27" }, + { "ID_INTEGRATION", "external" }, { NULL }, }) diff --git a/test/litest-device-mouse-wheel-hires-disabled.c b/test/litest-device-mouse-wheel-hires-disabled.c index e41d90c2..83a387c4 100644 --- a/test/litest-device-mouse-wheel-hires-disabled.c +++ b/test/litest-device-mouse-wheel-hires-disabled.c @@ -60,4 +60,8 @@ TEST_DEVICE(LITEST_MOUSE_WHEEL_HIRES_DISABLED, .id = &input_id, .absinfo = NULL, .events = events, - .quirk_file = quirk_file, ) + .quirk_file = quirk_file, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-mouse-wheel-tilt.c b/test/litest-device-mouse-wheel-tilt.c index 62d7d132..195b372e 100644 --- a/test/litest-device-mouse-wheel-tilt.c +++ b/test/litest-device-mouse-wheel-tilt.c @@ -56,5 +56,6 @@ TEST_DEVICE(LITEST_MOUSE_WHEEL_TILT, .udev_properties = { { "MOUSE_WHEEL_TILT_HORIZONTAL", "1" }, { "MOUSE_WHEEL_TILT_VERTICAL", "1" }, + { "ID_INTEGRATION", "external" }, { NULL }, }) diff --git a/test/litest-device-mouse.c b/test/litest-device-mouse.c index 6d709f40..95c10dbd 100644 --- a/test/litest-device-mouse.c +++ b/test/litest-device-mouse.c @@ -52,4 +52,8 @@ TEST_DEVICE(LITEST_MOUSE, .name = "Lenovo Optical USB Mouse", .id = &input_id, .absinfo = NULL, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-ms-nano-transceiver-mouse.c b/test/litest-device-ms-nano-transceiver-mouse.c index 8fb55ff8..3019e598 100644 --- a/test/litest-device-ms-nano-transceiver-mouse.c +++ b/test/litest-device-ms-nano-transceiver-mouse.c @@ -56,4 +56,8 @@ TEST_DEVICE(LITEST_MS_NANO_TRANSCEIVER_MOUSE, .name = "Microsoft Microsoft® Nano Transceiver v2.0", .id = &input_id, .absinfo = NULL, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-ms-surface-cover.c b/test/litest-device-ms-surface-cover.c index 6521fc50..c55b5d6d 100644 --- a/test/litest-device-ms-surface-cover.c +++ b/test/litest-device-ms-surface-cover.c @@ -382,4 +382,8 @@ TEST_DEVICE(LITEST_MS_SURFACE_COVER, .name = "Microsoft Surface Type Cover", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-nexus4-touch-screen.c b/test/litest-device-nexus4-touch-screen.c index 9b0083f7..21f9572c 100644 --- a/test/litest-device-nexus4-touch-screen.c +++ b/test/litest-device-nexus4-touch-screen.c @@ -87,4 +87,8 @@ TEST_DEVICE(LITEST_NEXUS4_TOUCH_SCREEN, .name = "Nexus 4 touch screen", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-ploopy-pavonis-stylus.c b/test/litest-device-ploopy-pavonis-stylus.c index f3afd12f..f0b0713e 100644 --- a/test/litest-device-ploopy-pavonis-stylus.c +++ b/test/litest-device-ploopy-pavonis-stylus.c @@ -127,4 +127,8 @@ TEST_DEVICE(LITEST_PLOOPY_PAVONIS_STYLUS, .name = "Ploopy Corporation Ploopy Pavonis Trackpad Stylus", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-protocol-a-touch-screen.c b/test/litest-device-protocol-a-touch-screen.c index 3ead5012..78d16c30 100644 --- a/test/litest-device-protocol-a-touch-screen.c +++ b/test/litest-device-protocol-a-touch-screen.c @@ -213,4 +213,8 @@ TEST_DEVICE(LITEST_PROTOCOL_A_SCREEN, .name = "Protocol A touch screen", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-qemu-usb-tablet.c b/test/litest-device-qemu-usb-tablet.c index 58465ba0..1cc23f4d 100644 --- a/test/litest-device-qemu-usb-tablet.c +++ b/test/litest-device-qemu-usb-tablet.c @@ -98,4 +98,8 @@ TEST_DEVICE(LITEST_QEMU_TABLET, .name = "QEMU 0.12.1 QEMU USB Tablet", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-sony-vaio-keys.c b/test/litest-device-sony-vaio-keys.c index 1a2dfa69..0a6384ca 100644 --- a/test/litest-device-sony-vaio-keys.c +++ b/test/litest-device-sony-vaio-keys.c @@ -94,4 +94,8 @@ TEST_DEVICE(LITEST_SONY_VAIO_KEYS, .name = "Sony Vaio Keys", .id = &input_id, .events = events, - .absinfo = NULL, ) + .absinfo = NULL, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-synaptics-hover.c b/test/litest-device-synaptics-hover.c index 40d66e33..659b7932 100644 --- a/test/litest-device-synaptics-hover.c +++ b/test/litest-device-synaptics-hover.c @@ -112,4 +112,8 @@ TEST_DEVICE(LITEST_SYNAPTICS_HOVER_SEMI_MT, .name = "SynPS/2 Synaptics TouchPad", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-synaptics-i2c.c b/test/litest-device-synaptics-i2c.c index 1fbe04d2..df7ebfd9 100644 --- a/test/litest-device-synaptics-i2c.c +++ b/test/litest-device-synaptics-i2c.c @@ -96,4 +96,8 @@ TEST_DEVICE(LITEST_SYNAPTICS_I2C, .id = &input_id, .events = events, .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, .quirk_file = quirk_file, ) diff --git a/test/litest-device-synaptics-phantomclicks.c b/test/litest-device-synaptics-phantomclicks.c index e8e07b46..16508af0 100644 --- a/test/litest-device-synaptics-phantomclicks.c +++ b/test/litest-device-synaptics-phantomclicks.c @@ -99,4 +99,8 @@ TEST_DEVICE(LITEST_SYNAPTICS_PHANTOMCLICKS, .id = &input_id, .events = events, .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, .quirk_file = quirk_file, ) diff --git a/test/litest-device-synaptics-pressurepad.c b/test/litest-device-synaptics-pressurepad.c index adeddf43..38f602c1 100644 --- a/test/litest-device-synaptics-pressurepad.c +++ b/test/litest-device-synaptics-pressurepad.c @@ -123,4 +123,8 @@ TEST_DEVICE(LITEST_SYNAPTICS_PRESSUREPAD, .name = "SYNA2B31:00 06CB:CE37 Touchpad", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-synaptics-rmi4.c b/test/litest-device-synaptics-rmi4.c index 3c8694e7..a49099f3 100644 --- a/test/litest-device-synaptics-rmi4.c +++ b/test/litest-device-synaptics-rmi4.c @@ -122,4 +122,8 @@ TEST_DEVICE(LITEST_SYNAPTICS_RMI4, .name = "Synaptics TM3053-004", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-synaptics-st.c b/test/litest-device-synaptics-st.c index 6fef36e1..cd6d54e5 100644 --- a/test/litest-device-synaptics-st.c +++ b/test/litest-device-synaptics-st.c @@ -99,4 +99,8 @@ TEST_DEVICE(LITEST_SYNAPTICS_TOUCHPAD, .name = "SynPS/2 Synaptics TouchPad", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-synaptics-t440.c b/test/litest-device-synaptics-t440.c index 72c247b8..a51b62fb 100644 --- a/test/litest-device-synaptics-t440.c +++ b/test/litest-device-synaptics-t440.c @@ -115,4 +115,8 @@ TEST_DEVICE(LITEST_SYNAPTICS_TOPBUTTONPAD, .name = "SynPS/2 Synaptics TouchPad", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-synaptics-x1-carbon-3rd.c b/test/litest-device-synaptics-x1-carbon-3rd.c index 58bf21f9..04c48056 100644 --- a/test/litest-device-synaptics-x1-carbon-3rd.c +++ b/test/litest-device-synaptics-x1-carbon-3rd.c @@ -122,4 +122,8 @@ TEST_DEVICE(LITEST_SYNAPTICS_TRACKPOINT_BUTTONS, .id = &input_id, .events = events, .absinfo = absinfo, - .quirk_file = quirk_file, ) + .quirk_file = quirk_file, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-synaptics-x220.c b/test/litest-device-synaptics-x220.c index e12f9d58..6b43a697 100644 --- a/test/litest-device-synaptics-x220.c +++ b/test/litest-device-synaptics-x220.c @@ -113,4 +113,8 @@ TEST_DEVICE(LITEST_SYNAPTICS_CLICKPAD_X220, .name = "SynPS/2 Synaptics TouchPad", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-tablet-doubledial.c b/test/litest-device-tablet-doubledial.c index 674e1a9a..836848ef 100644 --- a/test/litest-device-tablet-doubledial.c +++ b/test/litest-device-tablet-doubledial.c @@ -79,5 +79,6 @@ TEST_DEVICE(LITEST_TABLET_DOUBLEDIAL_PAD, .absinfo = absinfo, .udev_properties = { { "ID_INPUT_TABLET_PAD", "1" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-tablet-mode-switch.c b/test/litest-device-tablet-mode-switch.c index 47d5d637..4a78364e 100644 --- a/test/litest-device-tablet-mode-switch.c +++ b/test/litest-device-tablet-mode-switch.c @@ -61,5 +61,6 @@ TEST_DEVICE(LITEST_TABLET_MODE_UNRELIABLE, .quirk_file = quirk_file, .udev_properties = { { "ID_INPUT_SWITCH", "1" }, + { "ID_INTEGRATION", "internal" }, { NULL }, }) diff --git a/test/litest-device-tablet-rel-dial.c b/test/litest-device-tablet-rel-dial.c index b1df8e64..9d8634aa 100644 --- a/test/litest-device-tablet-rel-dial.c +++ b/test/litest-device-tablet-rel-dial.c @@ -76,5 +76,6 @@ TEST_DEVICE(LITEST_TABLET_REL_DIAL_PAD, .absinfo = absinfo, .udev_properties = { { "ID_INPUT_TABLET_PAD", "1" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-thinkpad-extrabuttons.c b/test/litest-device-thinkpad-extrabuttons.c index 6d1e050f..05186a7c 100644 --- a/test/litest-device-thinkpad-extrabuttons.c +++ b/test/litest-device-thinkpad-extrabuttons.c @@ -82,5 +82,6 @@ TEST_DEVICE(LITEST_THINKPAD_EXTRABUTTONS, .absinfo = NULL, .udev_properties = { { "ID_INPUT_SWITCH", "1" }, + { "ID_INTEGRATION", "internal" }, { NULL }, }, ) diff --git a/test/litest-device-touch-screen.c b/test/litest-device-touch-screen.c index c5325241..ddceb1cb 100644 --- a/test/litest-device-touch-screen.c +++ b/test/litest-device-touch-screen.c @@ -93,4 +93,8 @@ TEST_DEVICE(LITEST_GENERIC_MULTITOUCH_SCREEN, .name = "generic-mt", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-touchpad-palm-threshold-zero.c b/test/litest-device-touchpad-palm-threshold-zero.c index b4a7ddd1..1763588f 100644 --- a/test/litest-device-touchpad-palm-threshold-zero.c +++ b/test/litest-device-touchpad-palm-threshold-zero.c @@ -122,4 +122,8 @@ TEST_DEVICE(LITEST_TOUCHPAD_PALMPRESSURE_ZERO, .id = &input_id, .events = events, .absinfo = absinfo, - .quirk_file = quirk_file, ) + .quirk_file = quirk_file, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-touchscreen-fuzz.c b/test/litest-device-touchscreen-fuzz.c index f28ed576..e529d6f7 100644 --- a/test/litest-device-touchscreen-fuzz.c +++ b/test/litest-device-touchscreen-fuzz.c @@ -84,4 +84,8 @@ TEST_DEVICE(LITEST_MULTITOUCH_FUZZ_SCREEN, .name = "touchscreen with fuzz", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-touchscreen-invalid-range.c b/test/litest-device-touchscreen-invalid-range.c index 502c93a7..9e682844 100644 --- a/test/litest-device-touchscreen-invalid-range.c +++ b/test/litest-device-touchscreen-invalid-range.c @@ -84,4 +84,8 @@ TEST_DEVICE(LITEST_TOUCHSCREEN_INVALID_RANGE, .name = "touchscreen-invalid-range", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-touchscreen-mt-tool.c b/test/litest-device-touchscreen-mt-tool.c index e0c83e37..f12ba364 100644 --- a/test/litest-device-touchscreen-mt-tool.c +++ b/test/litest-device-touchscreen-mt-tool.c @@ -87,4 +87,8 @@ TEST_DEVICE(LITEST_TOUCHSCREEN_MT_TOOL_TYPE, .name = "touchscreen-mt-tool-type", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-trackpoint.c b/test/litest-device-trackpoint.c index b6061ec3..0ab2f3d6 100644 --- a/test/litest-device-trackpoint.c +++ b/test/litest-device-trackpoint.c @@ -52,4 +52,8 @@ TEST_DEVICE(LITEST_TRACKPOINT, .name = "TPPS/2 IBM TrackPoint", .id = &input_id, .absinfo = NULL, - .events = events, ) + .events = events, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-uclogic-tablet.c b/test/litest-device-uclogic-tablet.c index 37c77c65..0b99c465 100644 --- a/test/litest-device-uclogic-tablet.c +++ b/test/litest-device-uclogic-tablet.c @@ -106,4 +106,8 @@ TEST_DEVICE(LITEST_UCLOGIC_TABLET, .name = "uclogic PenTablet Pen", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-vmware-virtual-usb-mouse.c b/test/litest-device-vmware-virtual-usb-mouse.c index 374a24c8..0de3b629 100644 --- a/test/litest-device-vmware-virtual-usb-mouse.c +++ b/test/litest-device-vmware-virtual-usb-mouse.c @@ -113,4 +113,8 @@ TEST_DEVICE(LITEST_VMWARE_VIRTMOUSE, .name = "VMware VMware Virtual USB Mouse", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-wacom-bamboo-16fg-pen.c b/test/litest-device-wacom-bamboo-16fg-pen.c index a45f0432..d88ce6f9 100644 --- a/test/litest-device-wacom-bamboo-16fg-pen.c +++ b/test/litest-device-wacom-bamboo-16fg-pen.c @@ -113,4 +113,8 @@ TEST_DEVICE(LITEST_WACOM_BAMBOO_16FG_PEN, .name = "Wacom Bamboo 16FG 4x5 Pen", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-wacom-bamboo-2fg-finger.c b/test/litest-device-wacom-bamboo-2fg-finger.c index 3123aee7..e45d9cb1 100644 --- a/test/litest-device-wacom-bamboo-2fg-finger.c +++ b/test/litest-device-wacom-bamboo-2fg-finger.c @@ -94,5 +94,6 @@ TEST_DEVICE(LITEST_WACOM_BAMBOO_2FG_FINGER, { "LIBINPUT_DEVICE_GROUP", "wacom-bamboo-2fg-group" }, { "ID_INPUT_TABLET", "1" }, { "ID_INPUT_TOUCHPAD", "1" }, + { "ID_INTEGRATION", "external" }, { NULL }, }) diff --git a/test/litest-device-wacom-bamboo-2fg-pad.c b/test/litest-device-wacom-bamboo-2fg-pad.c index f315a811..381610f4 100644 --- a/test/litest-device-wacom-bamboo-2fg-pad.c +++ b/test/litest-device-wacom-bamboo-2fg-pad.c @@ -76,5 +76,6 @@ TEST_DEVICE(LITEST_WACOM_BAMBOO_2FG_PAD, .udev_properties = { { .key = "ID_INPUT_TABLET_PAD", .value = "1" }, { .key = "LIBINPUT_DEVICE_GROUP", .value = "1" }, + { .key = "ID_INTEGRATION", .value = "external" }, { NULL }, }) diff --git a/test/litest-device-wacom-bamboo-2fg-pen.c b/test/litest-device-wacom-bamboo-2fg-pen.c index 88a95532..4b0f2e0a 100644 --- a/test/litest-device-wacom-bamboo-2fg-pen.c +++ b/test/litest-device-wacom-bamboo-2fg-pen.c @@ -116,5 +116,6 @@ TEST_DEVICE(LITEST_WACOM_BAMBOO_2FG_PEN, .absinfo = absinfo, .udev_properties = { { "LIBINPUT_DEVICE_GROUP", "wacom-bamboo-2fg-group" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-calibrated-tablet.c b/test/litest-device-wacom-calibrated-tablet.c index 1978fb67..158db1f0 100644 --- a/test/litest-device-wacom-calibrated-tablet.c +++ b/test/litest-device-wacom-calibrated-tablet.c @@ -138,5 +138,6 @@ TEST_DEVICE(LITEST_WACOM_CALIBRATED_TABLET_PEN, .absinfo = absinfo, .udev_properties = { { "LIBINPUT_CALIBRATION_MATRIX", "-1 0 1 0 -1 1" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-cintiq-12wx-pen.c b/test/litest-device-wacom-cintiq-12wx-pen.c index 83aae9cc..fdbe3864 100644 --- a/test/litest-device-wacom-cintiq-12wx-pen.c +++ b/test/litest-device-wacom-cintiq-12wx-pen.c @@ -150,4 +150,8 @@ TEST_DEVICE(LITEST_WACOM_CINTIQ_12WX_PEN, .name = "Wacom Cintiq 12WX", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-wacom-cintiq-13hdt-finger.c b/test/litest-device-wacom-cintiq-13hdt-finger.c index d0ba38b5..ed502004 100644 --- a/test/litest-device-wacom-cintiq-13hdt-finger.c +++ b/test/litest-device-wacom-cintiq-13hdt-finger.c @@ -95,5 +95,6 @@ TEST_DEVICE(LITEST_WACOM_CINTIQ_13HDT_FINGER, .absinfo = absinfo, .udev_properties = { { "LIBINPUT_DEVICE_GROUP", "wacom-13hdt-group" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-cintiq-13hdt-pad.c b/test/litest-device-wacom-cintiq-13hdt-pad.c index 45eec677..29818a1e 100644 --- a/test/litest-device-wacom-cintiq-13hdt-pad.c +++ b/test/litest-device-wacom-cintiq-13hdt-pad.c @@ -105,5 +105,6 @@ TEST_DEVICE(LITEST_WACOM_CINTIQ_13HDT_PAD, .udev_properties = { { "ID_INPUT_TABLET_PAD", "1" }, { "LIBINPUT_DEVICE_GROUP", "wacom-13hdt-group" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-cintiq-13hdt-pen.c b/test/litest-device-wacom-cintiq-13hdt-pen.c index 6385fa7c..a5c9b15a 100644 --- a/test/litest-device-wacom-cintiq-13hdt-pen.c +++ b/test/litest-device-wacom-cintiq-13hdt-pen.c @@ -142,5 +142,6 @@ TEST_DEVICE(LITEST_WACOM_CINTIQ_13HDT_PEN, .absinfo = absinfo, .udev_properties = { { "LIBINPUT_DEVICE_GROUP", "wacom-13hdt-group" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-cintiq-24hd-pen.c b/test/litest-device-wacom-cintiq-24hd-pen.c index 84c52081..f54879a3 100644 --- a/test/litest-device-wacom-cintiq-24hd-pen.c +++ b/test/litest-device-wacom-cintiq-24hd-pen.c @@ -139,4 +139,8 @@ TEST_DEVICE(LITEST_WACOM_CINTIQ_24HD_PEN, .name = "Wacom Cintiq 24 HD Pen", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-wacom-cintiq-24hdt-pad.c b/test/litest-device-wacom-cintiq-24hdt-pad.c index cac4b7e3..7bf346f2 100644 --- a/test/litest-device-wacom-cintiq-24hdt-pad.c +++ b/test/litest-device-wacom-cintiq-24hdt-pad.c @@ -131,5 +131,6 @@ TEST_DEVICE(LITEST_WACOM_CINTIQ_24HDT_PAD, .udev_properties = { { "ID_INPUT_TABLET_PAD", "1" }, { "LIBINPUT_DEVICE_GROUP", "wacom-24hdt-group" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-cintiq-pro-16-finger.c b/test/litest-device-wacom-cintiq-pro-16-finger.c index 7ba9770d..1c6bf20d 100644 --- a/test/litest-device-wacom-cintiq-pro-16-finger.c +++ b/test/litest-device-wacom-cintiq-pro-16-finger.c @@ -94,5 +94,6 @@ TEST_DEVICE(LITEST_WACOM_CINTIQ_PRO16_FINGER, .absinfo = absinfo, .udev_properties = { { "LIBINPUT_DEVICE_GROUP", "wacom-pro16-group" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-cintiq-pro-16-pad.c b/test/litest-device-wacom-cintiq-pro-16-pad.c index 735c19f6..48b8f8f3 100644 --- a/test/litest-device-wacom-cintiq-pro-16-pad.c +++ b/test/litest-device-wacom-cintiq-pro-16-pad.c @@ -75,5 +75,6 @@ TEST_DEVICE(LITEST_WACOM_CINTIQ_PRO16_PAD, .udev_properties = { { "ID_INPUT_TABLET_PAD", "1" }, { "LIBINPUT_DEVICE_GROUP", "wacom-pro16-group" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-cintiq-pro-16-pen.c b/test/litest-device-wacom-cintiq-pro-16-pen.c index b0bbb181..13b5f121 100644 --- a/test/litest-device-wacom-cintiq-pro-16-pen.c +++ b/test/litest-device-wacom-cintiq-pro-16-pen.c @@ -149,5 +149,6 @@ TEST_DEVICE(LITEST_WACOM_CINTIQ_PRO16_PEN, .absinfo = absinfo, .udev_properties = { { "LIBINPUT_DEVICE_GROUP", "wacom-pro16-group" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-ekr.c b/test/litest-device-wacom-ekr.c index 0699ee01..5b61257f 100644 --- a/test/litest-device-wacom-ekr.c +++ b/test/litest-device-wacom-ekr.c @@ -114,5 +114,6 @@ TEST_DEVICE(LITEST_WACOM_EKR, .absinfo = absinfo, .udev_properties = { { "ID_INPUT_TABLET_PAD", "1" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-hid4800-pen.c b/test/litest-device-wacom-hid4800-pen.c index 01cb9ee1..c729dcf4 100644 --- a/test/litest-device-wacom-hid4800-pen.c +++ b/test/litest-device-wacom-hid4800-pen.c @@ -110,4 +110,8 @@ TEST_DEVICE(LITEST_WACOM_HID4800_PEN, .name = "Wacom HID 4800 Pen", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-wacom-intuos3-pad.c b/test/litest-device-wacom-intuos3-pad.c index 61066c7a..4c24ed16 100644 --- a/test/litest-device-wacom-intuos3-pad.c +++ b/test/litest-device-wacom-intuos3-pad.c @@ -99,5 +99,6 @@ TEST_DEVICE(LITEST_WACOM_INTUOS3_PAD, .absinfo = absinfo, .udev_properties = { { "ID_INPUT_TABLET_PAD", "1" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-intuos5-finger.c b/test/litest-device-wacom-intuos5-finger.c index 8f165e3b..1cf9de4f 100644 --- a/test/litest-device-wacom-intuos5-finger.c +++ b/test/litest-device-wacom-intuos5-finger.c @@ -119,5 +119,6 @@ TEST_DEVICE(LITEST_WACOM_INTUOS5_FINGER, { "ID_INPUT_TABLET", "1" }, { "ID_INPUT_TOUCHPAD", "1" }, { "LIBINPUT_DEVICE_GROUP", "wacom-i5-group" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-intuos5-pad.c b/test/litest-device-wacom-intuos5-pad.c index 18f5b8fe..d621f566 100644 --- a/test/litest-device-wacom-intuos5-pad.c +++ b/test/litest-device-wacom-intuos5-pad.c @@ -105,5 +105,6 @@ TEST_DEVICE(LITEST_WACOM_INTUOS5_PAD, .udev_properties = { { "ID_INPUT_TABLET_PAD", "1" }, { "LIBINPUT_DEVICE_GROUP", "wacom-i5-group" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-intuos5-pen.c b/test/litest-device-wacom-intuos5-pen.c index 0631c9f2..07bd1ab2 100644 --- a/test/litest-device-wacom-intuos5-pen.c +++ b/test/litest-device-wacom-intuos5-pen.c @@ -158,5 +158,6 @@ TEST_DEVICE(LITEST_WACOM_INTUOS5_PEN, .absinfo = absinfo, .udev_properties = { { "LIBINPUT_DEVICE_GROUP", "wacom-i5-group" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-wacom-isdv4-4200-pen.c b/test/litest-device-wacom-isdv4-4200-pen.c index 73a56341..39125102 100644 --- a/test/litest-device-wacom-isdv4-4200-pen.c +++ b/test/litest-device-wacom-isdv4-4200-pen.c @@ -110,4 +110,8 @@ TEST_DEVICE(LITEST_WACOM_ISDV4_4200_PEN, .name = "Wacom ISD-V4 Pen", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-wacom-isdv4-524c-pen.c b/test/litest-device-wacom-isdv4-524c-pen.c index 36336158..9c42f45f 100644 --- a/test/litest-device-wacom-isdv4-524c-pen.c +++ b/test/litest-device-wacom-isdv4-524c-pen.c @@ -164,4 +164,8 @@ TEST_DEVICE(LITEST_WACOM_ISDV4_524C_PEN, .id = &input_id, .events = events, .absinfo = absinfo, - .create = create, ) + .create = create, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-wacom-isdv4-e6-finger.c b/test/litest-device-wacom-isdv4-e6-finger.c index a7065571..c96e5c28 100644 --- a/test/litest-device-wacom-isdv4-e6-finger.c +++ b/test/litest-device-wacom-isdv4-e6-finger.c @@ -87,4 +87,8 @@ TEST_DEVICE(LITEST_WACOM_ISDV4_E6_FINGER, .name = "Wacom ISDv4 E6 Finger", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-wacom-isdv4-e6-pen.c b/test/litest-device-wacom-isdv4-e6-pen.c index 53b9a409..fa657bb3 100644 --- a/test/litest-device-wacom-isdv4-e6-pen.c +++ b/test/litest-device-wacom-isdv4-e6-pen.c @@ -103,4 +103,8 @@ TEST_DEVICE(LITEST_WACOM_ISDV4_E6_PEN, .name = "Wacom ISDv4 E6 Pen", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest-device-wacom-mobilestudio-pro-pad.c b/test/litest-device-wacom-mobilestudio-pro-pad.c index 2b6807b4..aa50bf0f 100644 --- a/test/litest-device-wacom-mobilestudio-pro-pad.c +++ b/test/litest-device-wacom-mobilestudio-pro-pad.c @@ -111,5 +111,6 @@ TEST_DEVICE(LITEST_WACOM_MOBILESTUDIO_PRO_16_PAD, .udev_properties = { { "ID_INPUT_TABLET", "1" }, { "ID_INPUT_TABLET_PAD", "1" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-waltop-tablet.c b/test/litest-device-waltop-tablet.c index 3065d9f9..efac7dc6 100644 --- a/test/litest-device-waltop-tablet.c +++ b/test/litest-device-waltop-tablet.c @@ -237,4 +237,8 @@ TEST_DEVICE(LITEST_WALTOP, .id = &input_id, .events = events, .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, .quirk_file = quirk_file, ) diff --git a/test/litest-device-wheel-only.c b/test/litest-device-wheel-only.c index 2bec1545..ed13555c 100644 --- a/test/litest-device-wheel-only.c +++ b/test/litest-device-wheel-only.c @@ -49,5 +49,6 @@ TEST_DEVICE(LITEST_WHEEL_ONLY, .events = events, .udev_properties = { { "ID_INPUT_KEY", "1" }, + { "ID_INTEGRATION", "external" }, { NULL }, }, ) diff --git a/test/litest-device-xen-virtual-pointer.c b/test/litest-device-xen-virtual-pointer.c index dcf8ce43..66fa390b 100644 --- a/test/litest-device-xen-virtual-pointer.c +++ b/test/litest-device-xen-virtual-pointer.c @@ -103,4 +103,8 @@ TEST_DEVICE(LITEST_XEN_VIRTUAL_POINTER, .name = "Xen Virtual Pointer", .id = &input_id, .events = events, - .absinfo = absinfo, ) + .absinfo = absinfo, + .udev_properties = { + { "ID_INTEGRATION", "internal" }, + { NULL }, + }, ) diff --git a/test/litest-device-yubikey.c b/test/litest-device-yubikey.c index 97ee1ec0..b81b36f2 100644 --- a/test/litest-device-yubikey.c +++ b/test/litest-device-yubikey.c @@ -156,4 +156,8 @@ TEST_DEVICE(LITEST_YUBIKEY, .name = "Yubico Yubico Yubikey II", .id = &input_id, .events = events, - .absinfo = NULL, ) + .absinfo = NULL, + .udev_properties = { + { "ID_INTEGRATION", "external" }, + { NULL }, + }, ) diff --git a/test/litest.h b/test/litest.h index b8b8d798..d2d00a8e 100644 --- a/test/litest.h +++ b/test/litest.h @@ -1359,6 +1359,7 @@ _litest_timeout(struct libinput *li, const char *func, int lineno, int millis); #define litest_timeout_debounce(li_) litest_timeout(li_, 30) #define litest_timeout_softbuttons(li_) litest_timeout(li_, 300) #define litest_timeout_buttonscroll(li_) litest_timeout(li_, 300) +#define litest_timeout_scroll_button_lock_grace(li_) litest_timeout(li_, 600) #define litest_timeout_wheel_scroll(li_) litest_timeout(li_, 600) #define litest_timeout_edgescroll(li_) litest_timeout(li_, 300) #define litest_timeout_finger_switch(li_) litest_timeout(li_, 140) @@ -1765,8 +1766,7 @@ litest_touchpad_is_external(struct litest_device *dev) return true; udev_device = libinput_device_get_udev_device(dev->libinput_device); - prop = udev_device_get_property_value(udev_device, - "ID_INPUT_TOUCHPAD_INTEGRATION"); + prop = udev_device_get_property_value(udev_device, "ID_INTEGRATION"); is_external = prop && streq(prop, "external"); udev_device_unref(udev_device); diff --git a/test/test-pointer.c b/test/test-pointer.c index e0bef987..56540551 100644 --- a/test/test-pointer.c +++ b/test/test-pointer.c @@ -2238,6 +2238,146 @@ START_TEST(pointer_scroll_button_lock_doubleclick_nomove) } END_TEST +START_TEST(pointer_scroll_button_lock_scroll_releases) +{ + struct litest_device *dev = litest_current_device(); + struct libinput *li = dev->libinput; + + litest_enable_scroll_button_lock(dev, BTN_LEFT); + litest_disable_middleemu(dev); + litest_drain_events(li); + + /* Press, wait for buttonscroll timeout, scroll, wait past grace + period, release. The lock should NOT engage. */ + litest_button_click_debounced(dev, li, BTN_LEFT, true); + litest_timeout_buttonscroll(li); + litest_dispatch(li); + + for (int i = 0; i < 10; i++) { + litest_event(dev, EV_REL, REL_X, 1); + litest_event(dev, EV_REL, REL_Y, 6); + litest_event(dev, EV_SYN, SYN_REPORT, 0); + } + litest_dispatch(li); + litest_assert_only_axis_events(li, LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS); + + litest_timeout_scroll_button_lock_grace(li); + + litest_button_click_debounced(dev, li, BTN_LEFT, false); + litest_dispatch(li); + + /* Expect scroll stop, no lock */ + litest_assert_scroll(li, LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS, 0, 0); + + /* Subsequent motion should be pointer motion, not scroll */ + for (int i = 0; i < 10; i++) { + litest_event(dev, EV_REL, REL_X, 1); + litest_event(dev, EV_REL, REL_Y, 6); + litest_event(dev, EV_SYN, SYN_REPORT, 0); + } + litest_assert_only_typed_events(li, LIBINPUT_EVENT_POINTER_MOTION); +} +END_TEST + +START_TEST(pointer_scroll_button_lock_scroll_within_grace) +{ + struct litest_device *dev = litest_current_device(); + struct libinput *li = dev->libinput; + + litest_enable_scroll_button_lock(dev, BTN_LEFT); + litest_disable_middleemu(dev); + litest_drain_events(li); + + /* Press, wait for buttonscroll timeout, scroll briefly, release + immediately (total < 500ms from press). The lock SHOULD engage + since we're within the grace period. */ + litest_button_click_debounced(dev, li, BTN_LEFT, true); + litest_timeout_buttonscroll(li); + litest_dispatch(li); + + for (int i = 0; i < 3; i++) { + litest_event(dev, EV_REL, REL_X, 1); + litest_event(dev, EV_REL, REL_Y, 6); + litest_event(dev, EV_SYN, SYN_REPORT, 0); + } + litest_dispatch(li); + + /* Release immediately (still within grace period) */ + litest_button_click_debounced(dev, li, BTN_LEFT, false); + litest_dispatch(li); + + /* Lock should be engaged: drain scroll events from the hold */ + litest_assert_only_axis_events(li, LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS); + + /* Motion while locked should produce scroll events */ + for (int i = 0; i < 10; i++) { + litest_event(dev, EV_REL, REL_X, 1); + litest_event(dev, EV_REL, REL_Y, 6); + litest_event(dev, EV_SYN, SYN_REPORT, 0); + } + litest_dispatch(li); + litest_assert_only_axis_events(li, LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS); + + /* Click again to unlock */ + litest_button_click_debounced(dev, li, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, false); + litest_dispatch(li); + + litest_assert_scroll(li, LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS, 0, 0); + + /* Back to normal motion */ + for (int i = 0; i < 10; i++) { + litest_event(dev, EV_REL, REL_X, 1); + litest_event(dev, EV_REL, REL_Y, 6); + litest_event(dev, EV_SYN, SYN_REPORT, 0); + } + litest_assert_only_typed_events(li, LIBINPUT_EVENT_POINTER_MOTION); +} +END_TEST + +START_TEST(pointer_scroll_button_lock_hold_no_move_still_locks) +{ + struct litest_device *dev = litest_current_device(); + struct libinput *li = dev->libinput; + + litest_enable_scroll_button_lock(dev, BTN_LEFT); + litest_disable_middleemu(dev); + litest_drain_events(li); + + /* Press, wait past 500ms, release without moving. + button_scroll_state == READY (not SCROLLING), so lock + engages as normal click. */ + litest_button_click_debounced(dev, li, BTN_LEFT, true); + litest_timeout_buttonscroll(li); + litest_timeout_scroll_button_lock_grace(li); + litest_dispatch(li); + + litest_button_click_debounced(dev, li, BTN_LEFT, false); + litest_dispatch(li); + + /* Lock should be engaged (release was filtered). + The scroll SM was in READY state, so it emits button press/release + (since no scrolling occurred), but the lock SM filtered the release. + Subsequent motion should produce scroll events. */ + litest_assert_empty_queue(li); + + for (int i = 0; i < 10; i++) { + litest_event(dev, EV_REL, REL_X, 1); + litest_event(dev, EV_REL, REL_Y, 6); + litest_event(dev, EV_SYN, SYN_REPORT, 0); + } + litest_dispatch(li); + litest_assert_only_axis_events(li, LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS); + + /* Click to unlock */ + litest_button_click_debounced(dev, li, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, false); + litest_dispatch(li); + + litest_assert_scroll(li, LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS, 0, 0); +} +END_TEST + START_TEST(pointer_scroll_nowheel_defaults) { struct litest_device *dev = litest_current_device(); @@ -3816,6 +3956,10 @@ TEST_COLLECTION(pointer) } litest_add(pointer_scroll_button_lock_doubleclick_nomove, LITEST_RELATIVE|LITEST_BUTTON, LITEST_ANY); + litest_add(pointer_scroll_button_lock_scroll_releases, LITEST_RELATIVE|LITEST_BUTTON, LITEST_ANY); + litest_add(pointer_scroll_button_lock_scroll_within_grace, LITEST_RELATIVE|LITEST_BUTTON, LITEST_ANY); + litest_add(pointer_scroll_button_lock_hold_no_move_still_locks, LITEST_RELATIVE|LITEST_BUTTON, LITEST_ANY); + litest_add(pointer_scroll_nowheel_defaults, LITEST_RELATIVE|LITEST_BUTTON, LITEST_WHEEL); litest_add_for_device(pointer_scroll_defaults_logitech_marble , LITEST_LOGITECH_TRACKBALL); litest_add(pointer_scroll_natural_defaults, LITEST_WHEEL, LITEST_TABLET);