From 7909975b0b965fbf0935bf012987a5368ea0e67a Mon Sep 17 00:00:00 2001 From: Paulo Zanoni Date: Thu, 15 Dec 2011 12:26:37 -0200 Subject: Fix relative events with swapped axes After we swap the axes, we only call valuator_mask_set for axes that are not zero, so we need to unset the axes that became zero when swapped. Signed-off-by: Paulo Zanoni Signed-off-by: Peter Hutterer --- src/evdev.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/evdev.c b/src/evdev.c index b1f9b2e..562c7e7 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -408,6 +408,10 @@ EvdevProcessValuators(InputInfoPtr pInfo) tmp = pEvdev->delta[REL_X]; pEvdev->delta[REL_X] = pEvdev->delta[REL_Y]; pEvdev->delta[REL_Y] = tmp; + if (pEvdev->delta[REL_X] == 0) + valuator_mask_unset(pEvdev->vals, REL_X); + if (pEvdev->delta[REL_Y] == 0) + valuator_mask_unset(pEvdev->vals, REL_Y); } if (pEvdev->invert_x) pEvdev->delta[REL_X] *= -1; -- cgit v1.2.3