From bbeb7ad51c1edb7ab3cf63f30a21e9bb383b7994 Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 13 Feb 2024 11:20:52 +0000 Subject: [PATCH] Fixes incorrect detection of touchpads (#66) Some touchpad drivers (such as applespi) claim to have both EV_ABS and EV_REL capabilities. These touchpads are then reported as mice by libudev-zero. --- udev_device.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) --- a/udev_device.c +++ b/udev_device.c @@ -458,13 +458,7 @@ static void set_properties_from_evdev(st udev_list_entry_add(&udev_device->properties, "ID_INPUT_SWITCH", "1", 0); } - if (test_bit(ev_bits, EV_REL)) { - if (test_bit(rel_bits, REL_Y) && test_bit(rel_bits, REL_X) && - test_bit(key_bits, BTN_MOUSE)) { - udev_list_entry_add(&udev_device->properties, "ID_INPUT_MOUSE", "1", 0); - } - } - else if (test_bit(ev_bits, EV_ABS)) { + if (test_bit(ev_bits, EV_ABS)) { if (test_bit(key_bits, BTN_SELECT) || test_bit(key_bits, BTN_TR) || test_bit(key_bits, BTN_START) || test_bit(key_bits, BTN_TL)) { if (test_bit(key_bits, BTN_TOUCH)) { @@ -494,6 +488,12 @@ static void set_properties_from_evdev(st } } } + else if (test_bit(ev_bits, EV_REL)) { + if (test_bit(rel_bits, REL_Y) && test_bit(rel_bits, REL_X) && + test_bit(key_bits, BTN_MOUSE)) { + udev_list_entry_add(&udev_device->properties, "ID_INPUT_MOUSE", "1", 0); + } + } if (!test_bit(ev_bits, EV_KEY)) { return;