When changing the fd, reset our grab state to ungrabbed
authorPeter Hutterer <peter.hutterer@who-t.net>
Tue, 12 Dec 2017 23:20:55 +0000 (09:20 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Wed, 13 Dec 2017 00:01:58 +0000 (10:01 +1000)
commit0637d0237a36828f02ad096a08e644a77ad68541
tree85334c3a2d1c9aa784cba503f3630f39c9cb50a2
parent022b2bc3b03320131966a465c464f989fa91905e
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>
libevdev/libevdev.c
libevdev/libevdev.h
test/test-libevdev-init.c