If we don't have anything to sync, don't add a EV_SYN event
authorPeter Hutterer <peter.hutterer@who-t.net>
Tue, 2 Jul 2013 00:55:44 +0000 (10:55 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Tue, 2 Jul 2013 04:02:58 +0000 (14:02 +1000)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
libevdev/libevdev.c

index 445cc54..8d339f4 100644 (file)
@@ -426,11 +426,14 @@ sync_state(struct libevdev *dev)
        if (rc == 0 && libevdev_has_event_code(dev, EV_ABS, ABS_MT_SLOT))
                rc = sync_mt_state(dev);
 
-       ev = queue_push(dev);
-       init_event(dev, ev, EV_SYN, SYN_REPORT, 0);
-
        dev->queue_nsync = queue_num_elements(dev);
 
+       if (dev->queue_nsync > 0) {
+               ev = queue_push(dev);
+               init_event(dev, ev, EV_SYN, SYN_REPORT, 0);
+               dev->queue_nsync++;
+       }
+
        return rc;
 }