summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Jaeger <ThJaeger@gmail.com>2012-10-13 22:43:26 -0400
committerPeter Hutterer <peter.hutterer@who-t.net>2012-11-20 15:14:43 +1000
commit90b177e5cbb9047453af426d2abfe9c0514fe866 (patch)
treed88fb4edaa493addabf0e0edb75448d7d6289deb
parent6a6c3afe71ac82a93d9fd0034dd5bbdcf0eae1ea (diff)
Update the MD's position when a touch event is received
Signed-off-by: Thomas Jaeger <ThJaeger@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--dix/getevents.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/dix/getevents.c b/dix/getevents.c
index 2a686e877..5c1e97ef4 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -1994,6 +1994,14 @@ GetTouchEvents(InternalEvent *events, DeviceIntPtr dev, uint32_t ddx_touchid,
if (emulate_pointer)
storeLastValuators(dev, &mask, 0, 1, devx, devy);
+ /* Update the MD's co-ordinates, which are always in desktop space. */
+ if (emulate_pointer && !IsMaster(dev) && !IsFloating(dev)) {
+ DeviceIntPtr master = GetMaster(dev, MASTER_POINTER);
+
+ master->last.valuators[0] = screenx;
+ master->last.valuators[1] = screeny;
+ }
+
event->root = scr->root->drawable.id;
event_set_root_coordinates(event, screenx, screeny);