Projects
Mega:23.03
systemd
_service:tar_scm:backport-udev-builtin-input_id...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:backport-udev-builtin-input_id-don-t-label-absolute-mice-as-p.patch of Package systemd
From c6cdd3489f2abfd0a868ad5d8d42b166d7eec33f Mon Sep 17 00:00:00 2001 From: Peter Hutterer <peter.hutterer@who-t.net> Date: Wed, 23 Feb 2022 09:12:43 +1000 Subject: [PATCH] udev-builtin-input_id: don't label absolute mice as pointing sticks The Getac UX10 tablet exposes a "CUST0000:00 0EEF:C002 Mouse" device with BTN_LEFT/RIGHT and ABS_X/Y on the i2c bus. This causes the builtin to incorrectly label it as pointing stick (all i2c mice are tagged as ID_INPUT_POINTING_STICK, see 3d7ac1c655ec4). Fix this by adding a separate variable for absolute pointing devices like the VMmouse USB mouse or this Getac tablet - this way we skip the pointing stick check. See https://gitlab.freedesktop.org/libinput/libinput/-/issues/743 for recordings. (cherry picked from commit 8ac9ec4d5c210825759d515422d3e66c20615fc1) (cherry picked from commit ea5701eb64ff40f915567ae4088ffb7efc0f4155) Conflict:NA Reference:https://github.com/systemd/systemd/commit/c6cdd3489f2abfd0a868ad5d8d42b166d7eec33f --- src/udev/udev-builtin-input_id.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/udev/udev-builtin-input_id.c b/src/udev/udev-builtin-input_id.c index dda53b6da0..f62dffbc58 100644 --- a/src/udev/udev-builtin-input_id.c +++ b/src/udev/udev-builtin-input_id.c @@ -168,6 +168,7 @@ static bool test_pointers(sd_device *dev, bool finger_but_no_pen = false; bool has_mouse_button = false; bool is_mouse = false; + bool is_abs_mouse = false; bool is_touchpad = false; bool is_touchscreen = false; bool is_tablet = false; @@ -232,7 +233,7 @@ static bool test_pointers(sd_device *dev, else if (has_mouse_button) /* This path is taken by VMware's USB mouse, which has * absolute axes, but no touch/pressure button. */ - is_mouse = true; + is_abs_mouse = true; else if (has_touch || is_direct) is_touchscreen = true; else if (has_joystick_axes_or_buttons) @@ -264,7 +265,7 @@ static bool test_pointers(sd_device *dev, if (is_pointing_stick) udev_builtin_add_property(dev, test, "ID_INPUT_POINTINGSTICK", "1"); - if (is_mouse) + if (is_mouse || is_abs_mouse) udev_builtin_add_property(dev, test, "ID_INPUT_MOUSE", "1"); if (is_touchpad) udev_builtin_add_property(dev, test, "ID_INPUT_TOUCHPAD", "1"); @@ -277,7 +278,7 @@ static bool test_pointers(sd_device *dev, if (is_tablet_pad) udev_builtin_add_property(dev, test, "ID_INPUT_TABLET_PAD", "1"); - return is_tablet || is_mouse || is_touchpad || is_touchscreen || is_joystick || is_pointing_stick; + return is_tablet || is_mouse || is_abs_mouse || is_touchpad || is_touchscreen || is_joystick || is_pointing_stick; } /* key like devices */ -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2