1
0
Fork 0

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.
This commit is contained in:
Matt 2024-02-13 11:20:52 +00:00 committed by GitHub
parent c027f870c8
commit bbeb7ad51c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -458,13 +458,7 @@ static void set_properties_from_evdev(struct udev_device *udev_device)
udev_list_entry_add(&udev_device->properties, "ID_INPUT_SWITCH", "1", 0); udev_list_entry_add(&udev_device->properties, "ID_INPUT_SWITCH", "1", 0);
} }
if (test_bit(ev_bits, EV_REL)) { if (test_bit(ev_bits, EV_ABS)) {
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(key_bits, BTN_SELECT) || test_bit(key_bits, BTN_TR) || 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)) { test_bit(key_bits, BTN_START) || test_bit(key_bits, BTN_TL)) {
if (test_bit(key_bits, BTN_TOUCH)) { if (test_bit(key_bits, BTN_TOUCH)) {
@ -494,6 +488,12 @@ static void set_properties_from_evdev(struct udev_device *udev_device)
} }
} }
} }
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)) { if (!test_bit(ev_bits, EV_KEY)) {
return; return;