[PATCH libinput] evdev: check the first parent of the event node for ID_INPUT tags

Benjamin Tissoires benjamin.tissoires at gmail.com
Tue Feb 17 14:34:00 PST 2015


On Thu, Feb 12, 2015 at 8:51 PM, Peter Hutterer
<peter.hutterer at who-t.net> wrote:
> 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 at who-t.net>
> ---

Thanks for the patch.
Tested-by: Benjamin Tissoires <benjamin.tissoires at gmail.com>

Cheers,
Benjamin

>  src/evdev.c | 19 +++++++++++++------
>  1 file changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/src/evdev.c b/src/evdev.c
> index 11fa89b..cf21d2e 100644
> --- a/src/evdev.c
> +++ b/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;
>  }
>
> --
> 2.1.0
>


More information about the wayland-devel mailing list