summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2013-07-01 14:39:53 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2013-07-01 14:39:53 +1000
commitcca3cc95af5e48d573c7ae587b8672fcef471acf (patch)
tree625df05d6e2e35c4d9195663182ccb49cd3b63be
parent6f78a7adabfed0a416e0d243e1cfe78c91013887 (diff)
downloadlibevdev-cca3cc95af5e48d573c7ae587b8672fcef471acf.tar.gz
Don't sync mt axes that don't exist
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--libevdev/libevdev.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c
index d85580c..d326c8d 100644
--- a/libevdev/libevdev.c
+++ b/libevdev/libevdev.c
@@ -352,6 +352,9 @@ sync_mt_state(struct libevdev *dev)
if (i == ABS_MT_SLOT)
continue;
+ if (!libevdev_has_event_code(dev, EV_ABS, i))
+ continue;
+
idx = i - ABS_MT_MIN;
mt_state[idx].code = i;
rc = ioctl(dev->fd, EVIOCGMTSLOTS(sizeof(struct mt_state)), &mt_state[idx]);
@@ -371,6 +374,9 @@ sync_mt_state(struct libevdev *dev)
if (j == ABS_MT_SLOT)
continue;
+ if (!libevdev_has_event_code(dev, EV_ABS, j))
+ continue;
+
if (dev->mt_slot_vals[i][jdx] == mt_state[jdx].val[i])
continue;