aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@redhat.com>2008-10-24 13:09:46 +1030
committerPeter Hutterer <peter.hutterer@redhat.com>2008-11-03 13:46:25 +1030
commit4fb97edcd4e3de23a8476ca4d0267f55293cccad (patch)
tree258836eca2323b457d6ea4403e6e70d42d5da2ac
parentemulate MB: fix confusing log message. (diff)
downloadxf86-input-evdev-4fb97edcd4e3de23a8476ca4d0267f55293cccad.tar.gz
xf86-input-evdev-4fb97edcd4e3de23a8476ca4d0267f55293cccad.tar.bz2
xf86-input-evdev-4fb97edcd4e3de23a8476ca4d0267f55293cccad.zip
Fix axis inversion for absolute coordinates.
If min_x/y was not equal to 0, the inverted calculated range was off and leads to inaccessible or out-of-range areas. (cherry picked from commit 12498042fcc08e34aef0117ce84192f59542fd56)
-rw-r--r--src/evdev.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/evdev.c b/src/evdev.c
index 482f95e..d112efe 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -388,9 +388,9 @@ EvdevReadInput(InputInfoPtr pInfo)
abs_x = pEvdev->abs_x;
abs_y = pEvdev->abs_y;
if (pEvdev->invert_x)
- abs_x = pEvdev->max_x - abs_x;
+ abs_x = pEvdev->max_x - (abs_x - pEvdev->min_x);
if (pEvdev->invert_y)
- abs_y = pEvdev->max_y - abs_y;
+ abs_y = pEvdev->max_y - (abs_y - pEvdev->min_y);
xf86PostMotionEvent(pInfo->dev, TRUE, 0, 2, abs_x, abs_y);
}