summaryrefslogtreecommitdiff
path: root/libevdev/libevdev.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2017-12-13 09:20:55 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2017-12-13 10:01:58 +1000
commit0637d0237a36828f02ad096a08e644a77ad68541 (patch)
tree85334c3a2d1c9aa784cba503f3630f39c9cb50a2 /libevdev/libevdev.c
parent022b2bc3b03320131966a465c464f989fa91905e (diff)
downloadlibevdev-0637d0237a36828f02ad096a08e644a77ad68541.tar.gz
When changing the fd, reset our grab state to ungrabbed
Previously, calling grabbing a device after changing the fd was a no-op because libevdev's grab state didn't match the fd: libevdev_grab(LIBEVDEV_GRAB); .. fd is grabbed .. internal state is 'grabbed' libevdev_change_fd(); .. new fd is ungrabbed .. internal state is 'grabbed' libevdev_grab(LIBEVDEV_GRAB); .. argument matches internal state and we exit without grabbing the device Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'libevdev/libevdev.c')
-rw-r--r--libevdev/libevdev.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c
index 41bfd25..de0c476 100644
--- a/libevdev/libevdev.c
+++ b/libevdev/libevdev.c
@@ -311,6 +311,7 @@ libevdev_change_fd(struct libevdev *dev, int fd)
return -1;
}
dev->fd = fd;
+ dev->grabbed = LIBEVDEV_UNGRAB;
return 0;
}