Make the code for handling before/after SYN_DROPPED slot values more readable
authorPeter Hutterer <peter.hutterer@who-t.net>
Thu, 13 Feb 2020 06:39:20 +0000 (16:39 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Tue, 18 Feb 2020 23:05:22 +0000 (09:05 +1000)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
libevdev/libevdev.c

index d4d20b776ed5b0954a6956f260b3f6cc70016804..430add0dbcd34499b2d69bb8c54d75bdc0d82911 100644 (file)
@@ -684,17 +684,19 @@ sync_mt_state(struct libevdev *dev, int create_events)
                        goto out;
 
                for (int slot = 0; slot < dev->num_slots; slot++) {
-                       if (*slot_value(dev, slot, axis) == mt_state.val[slot])
+                       int val_before = *slot_value(dev, slot, axis),
+                           val_after = mt_state.val[slot];
+
+                       if (val_before == val_after)
                                continue;
 
                        if (axis == ABS_MT_TRACKING_ID &&
-                           *slot_value(dev, slot, axis) != -1 &&
-                           mt_state.val[slot] != -1) {
+                           val_before != -1 && val_after != -1) {
                                set_bit(tracking_id_changes, slot);
                                need_tracking_id_changes = 1;
                        }
 
-                       *slot_value(dev, slot, axis) = mt_state.val[slot];
+                       *slot_value(dev, slot, axis) = val_after;
 
                        set_bit(slot_update[slot], axis);
                        /* note that this slot has updates */