diff options
author | Chase Douglas <chase.douglas@canonical.com> | 2012-01-18 19:09:21 -0800 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2012-01-24 13:27:30 +1000 |
commit | e1085a0da0b9299f48b3dc41dee5e33bf022bea5 (patch) | |
tree | 0e0bac3fc8bb4794c832ecd647c47d3c6c0b30ac /dix | |
parent | 5201310559fe8708ba8278bdef77cdc1673fff71 (diff) |
Don't set X and Y valuators for indirect touch events
For expediency, it made sense to always have the X and Y axes set for
direct touch device event propagation. The last X and Y values are
stored internally. However, indirect device touch event propagation
does not depend on the touch's X and Y values. Thus, we don't need to
set the values for every indirect touch event.
On top of this, the previous X and Y values aren't stored for indirect
touches, so without this change the axes get erroneously set to 0.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'dix')
-rw-r--r-- | dix/getevents.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/dix/getevents.c b/dix/getevents.c index 154705937..7678aa1f2 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -1836,7 +1836,7 @@ GetTouchEvents(InternalEvent *events, DeviceIntPtr dev, uint32_t ddx_touchid, default: return 0; } - if (!(flags & TOUCH_CLIENT_ID)) + if (t->mode == XIDirectTouch && !(flags & TOUCH_CLIENT_ID)) { if (!valuator_mask_isset(&mask, 0)) valuator_mask_set_double(&mask, 0, valuator_mask_get_double(touchpoint.ti->valuators, 0)); |