evdev: reject devices with only REL_X but no REL_Y (or vice versa)
authorPeter Hutterer <peter.hutterer@who-t.net>
Fri, 24 Apr 2015 05:01:55 +0000 (15:01 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Mon, 27 Apr 2015 21:45:17 +0000 (07:45 +1000)
Not sure if any exists, if they do let's see if a user files a bug report
first so we know what to do with those (they're most likely buttonsets).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-By: Derek Foreman <derekf@osg.samsung.com>
src/evdev.c

index 6a9df4996068434a30448cccf54708ea9fce1976..db19ac892e2c549fd8546a10d311fca0a9d3b2d1 100644 (file)
@@ -1606,6 +1606,10 @@ evdev_reject_device(struct evdev_device *device)
            libevdev_has_event_code(evdev, EV_ABS, ABS_Y))
                return -1;
 
+       if (libevdev_has_event_code(evdev, EV_REL, REL_X) ^
+           libevdev_has_event_code(evdev, EV_REL, REL_Y))
+               return -1;
+
        if (libevdev_has_event_code(evdev, EV_ABS, ABS_MT_POSITION_X) ^
            libevdev_has_event_code(evdev, EV_ABS, ABS_MT_POSITION_Y))
                return -1;