From 6083fafe53267c8f0d6120360449eacf220ab078 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 24 Apr 2015 15:01:55 +1000 Subject: [PATCH] evdev: reject devices with only REL_X but no REL_Y (or vice versa) 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 Reviewed-By: Derek Foreman --- src/evdev.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/evdev.c b/src/evdev.c index 6a9df499..db19ac89 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -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;