diff options
author | Chase Douglas <chase.douglas@canonical.com> | 2012-04-17 11:40:15 -0700 |
---|---|---|
committer | Chase Douglas <chase.douglas@ubuntu.com> | 2012-04-18 18:29:56 -0700 |
commit | a986f2f30cbe2a00e72ded7315c4951d7703e549 (patch) | |
tree | 217e827a21c7e70c89d84c5e27c1aacc189e48d9 /Xi/exevents.c | |
parent | ec9c4295830c3de610e65aca17f4da4a7af3c4c5 (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.c | 6 |
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 |