Make sure EV_SYN is always set
authorPeter Hutterer <peter.hutterer@who-t.net>
Thu, 24 Oct 2013 04:21:31 +0000 (14:21 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 24 Oct 2013 05:13:41 +0000 (15:13 +1000)
Set the bit during device reset and make sure that if we're checking
for the event type we always return true for EV_SYN.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
libevdev/libevdev.c

index 8315d9b..7bebe32 100644 (file)
@@ -120,6 +120,7 @@ libevdev_reset(struct libevdev *dev)
        dev->current_slot = -1;
        dev->grabbed = LIBEVDEV_UNGRAB;
        dev->sync_state = SYNC_NONE;
+       libevdev_enable_event_type(dev, EV_SYN);
 }
 
 LIBEVDEV_EXPORT struct libevdev*
@@ -944,7 +945,7 @@ libevdev_enable_property(struct libevdev *dev, unsigned int prop)
 LIBEVDEV_EXPORT int
 libevdev_has_event_type(const struct libevdev *dev, unsigned int type)
 {
-       return (type <= EV_MAX) && bit_is_set(dev->bits, type);
+       return type == EV_SYN ||(type <= EV_MAX && bit_is_set(dev->bits, type));
 }
 
 LIBEVDEV_EXPORT int