diff options
| author | Peter Hutterer <peter.hutterer@who-t.net> | 2017-12-13 09:20:55 +1000 |
|---|---|---|
| committer | Peter Hutterer <peter.hutterer@who-t.net> | 2017-12-13 10:01:58 +1000 |
| commit | 0637d0237a36828f02ad096a08e644a77ad68541 (patch) | |
| tree | 85334c3a2d1c9aa784cba503f3630f39c9cb50a2 /libevdev/libevdev.c | |
| parent | 022b2bc3b03320131966a465c464f989fa91905e (diff) | |
| download | libevdev-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.c | 1 |
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; } |
