diff options
author | Thomas Jaeger <ThJaeger@gmail.com> | 2012-10-13 22:43:26 -0400 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2012-11-20 15:14:43 +1000 |
commit | 90b177e5cbb9047453af426d2abfe9c0514fe866 (patch) | |
tree | d88fb4edaa493addabf0e0edb75448d7d6289deb | |
parent | 6a6c3afe71ac82a93d9fd0034dd5bbdcf0eae1ea (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.c | 8 |
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); |