summaryrefslogtreecommitdiff
path: root/Xi/exevents.c
diff options
context:
space:
mode:
authorChase Douglas <chase.douglas@canonical.com>2012-04-17 11:40:15 -0700
committerChase Douglas <chase.douglas@ubuntu.com>2012-04-18 18:29:56 -0700
commita986f2f30cbe2a00e72ded7315c4951d7703e549 (patch)
tree217e827a21c7e70c89d84c5e27c1aacc189e48d9 /Xi/exevents.c
parentec9c4295830c3de610e65aca17f4da4a7af3c4c5 (diff)
Update device state including when touch record does not exist
If a touch is physically active, the pointer core state should reflect that the first button is pressed. Currently, this only occurs when there are active listeners of the touch sequence. By moving the device state updating to the beginning of touch processing we ensure it is updated according to the processed physical state no matter what. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'Xi/exevents.c')
-rw-r--r--Xi/exevents.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/Xi/exevents.c b/Xi/exevents.c
index d2b088c40..e9f02072a 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -1597,6 +1597,9 @@ ProcessTouchEvent(InternalEvent *ev, DeviceIntPtr dev)
else
touchid = ev->device_event.touchid;
+ if (emulate_pointer)
+ UpdateDeviceState(dev, &ev->device_event);
+
if (type == ET_TouchBegin) {
ti = TouchBeginTouch(dev, ev->device_event.sourceid, touchid,
emulate_pointer);
@@ -1996,9 +1999,6 @@ DeliverTouchEvents(DeviceIntPtr dev, TouchPointInfoPtr ti,
DeliverTouchEvent(dev, ti, ev, listener, client, win, grab, mask);
}
-
- if (ti->emulate_pointer)
- UpdateDeviceState(dev, &ev->device_event);
}
int