mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2025-12-29 07:50:08 +01:00
evdev: check the first parent of the event node for ID_INPUT tags
Bluetooth tablet devices' rules can't tag the event node directly, they can only tag the first parent (the /sys/class/input/input1234 node). Check that parent for tags too, lest we miss something important. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Tested-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
This commit is contained in:
parent
cbeacfed13
commit
65e077759b
1 changed files with 13 additions and 6 deletions
19
src/evdev.c
19
src/evdev.c
|
|
@ -1356,16 +1356,23 @@ evdev_device_get_udev_tags(struct evdev_device *device,
|
|||
{
|
||||
const char *prop;
|
||||
enum evdev_device_udev_tags tags = 0;
|
||||
const struct evdev_udev_tag_match *match = evdev_udev_tag_matches;
|
||||
const struct evdev_udev_tag_match *match;
|
||||
int i;
|
||||
|
||||
while (match->name) {
|
||||
prop = udev_device_get_property_value(device->udev_device,
|
||||
for (i = 0; i < 2 && udev_device; i++) {
|
||||
match = evdev_udev_tag_matches;
|
||||
while (match->name) {
|
||||
prop = udev_device_get_property_value(
|
||||
udev_device,
|
||||
match->name);
|
||||
if (prop)
|
||||
tags |= match->tag;
|
||||
if (prop)
|
||||
tags |= match->tag;
|
||||
|
||||
match++;
|
||||
match++;
|
||||
}
|
||||
udev_device = udev_device_get_parent(udev_device);
|
||||
}
|
||||
|
||||
return tags;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue