[PATCH libevdev 3/6] Only sync the initial MT state for Protocol B devices

Peter Hutterer peter.hutterer at who-t.net
Tue Apr 1 19:17:26 PDT 2014


For protocol A devices we won't get the information from the kernel anyway and
we expect all axes to be updated in the next event.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 libevdev/libevdev.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c
index 99e86a0..e2070d4 100644
--- a/libevdev/libevdev.c
+++ b/libevdev/libevdev.c
@@ -395,7 +395,9 @@ libevdev_set_fd(struct libevdev* dev, int fd)
 	}
 
 	dev->fd = fd;
-	sync_mt_state(dev, 0);
+	if (!libevdev_has_event_code(dev, EV_ABS, ABS_MT_SLOT - 1) &&
+	    libevdev_has_event_code(dev, EV_ABS, ABS_MT_SLOT))
+	    sync_mt_state(dev, 0);
 
 	rc = init_event_queue(dev);
 	if (rc < 0) {
-- 
1.9.0



More information about the Input-tools mailing list