udev: always consider devices with joystick axes/buttons as joystick

Even when they don't have an x/y axis.

https://github.com/systemd/systemd/issues/6137

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2017-06-22 09:19:32 +10:00
parent c874fed348
commit 2e856c63d4

View file

@ -204,7 +204,7 @@ static bool test_pointers(struct udev_device *dev,
has_touch = test_bit(BTN_TOUCH, bitmask_key);
/* joysticks don't necessarily have buttons; e. g.
* rudders/pedals are joystick-like, but buttonless; they have
* other fancy axes */
* other fancy axes. Others have buttons only but no axes. */
has_joystick_axes_or_buttons = test_bit(BTN_TRIGGER, bitmask_key) ||
test_bit(BTN_TRIGGER_HAPPY, bitmask_key) ||
test_bit(BTN_A, bitmask_key) ||
@ -231,7 +231,10 @@ static bool test_pointers(struct udev_device *dev,
is_touchscreen = true;
else if (has_joystick_axes_or_buttons)
is_joystick = true;
} else if (has_joystick_axes_or_buttons) {
is_joystick = true;
}
if (has_mt_coordinates) {
if (stylus_or_pen)
is_tablet = true;