summaryrefslogtreecommitdiff
path: root/libevdev
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2013-05-30 12:24:46 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2013-05-30 13:37:44 +1000
commit3e22ef86ab2c99c1149658febdc7b91916fb5a45 (patch)
tree6b53dca7afe99d90560d48ee9b26cdc073d27817 /libevdev
parentec093aa39840e79892b409749ac006c9aaa23026 (diff)
downloadlibevdev-3e22ef86ab2c99c1149658febdc7b91916fb5a45.tar.gz
If a client doesn't sync when it should, drop all sync events
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'libevdev')
-rw-r--r--libevdev/libevdev.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c
index 2c5742e..173f33c 100644
--- a/libevdev/libevdev.c
+++ b/libevdev/libevdev.c
@@ -512,10 +512,8 @@ int libevdev_next_event(struct libevdev *dev, unsigned int flags, struct input_e
if (rc != 0)
return rc;
}
- } else if (dev->need_sync) {
- /* FIXME: if a client decides not to sync, drop all sync events */
- return 1;
- }
+ } else if (dev->need_sync)
+ queue_shift_multiple(dev, dev->queue_nsync, NULL);
/* Always read in some more events. Best case this smoothes over a potential SYN_DROPPED,
worst case we don't read fast enough and end up with SYN_DROPPED anyway */