Xi/exevents.c | 9 ++++----- debian/changelog | 3 +++ 2 files changed, 7 insertions(+), 5 deletions(-)
New commits: commit 20ed84995623a01594b55f553058c32c2842bf61 Author: Julien Cristau <[email protected]> Date: Tue Mar 12 20:29:35 2013 +0100 Changelog entry diff --git a/debian/changelog b/debian/changelog index f844f77..5e0d1a3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,9 @@ xorg-server (2:1.12.4-6) UNRELEASED; urgency=low * Touch: Fix duplicate TouchBegin selection with virtual devices (closes: #696272) + * Xi: Don't check for TOUCH_END, it's never set + * Xi: Update the device after delivering the emulated pointer event + (closes: #702662) -- Julien Cristau <[email protected]> Sun, 03 Mar 2013 19:13:57 +0100 commit 7e0e6f8154b58c4250f3ef0df15835c2b06639f0 Author: Carlos Garnacho <[email protected]> Date: Wed Oct 31 19:32:57 2012 +0100 Xi: Update the device after delivering the emulated pointer event(#56558) Ensure emulated pointer events contain the state that applies before the event was processed, so the device state must be updated after delivering such emulated events. Co-authored-by: Peter Hutterer <[email protected]> Signed-off-by: Carlos Garnacho <[email protected]> Reviewed-by: Peter Hutterer <[email protected]> Signed-off-by: Peter Hutterer <[email protected]> (cherry picked from commit 863f32c930d71073ee5f78452b78bd459d024867) diff --git a/Xi/exevents.c b/Xi/exevents.c index c1fcc55..9136249 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1595,9 +1595,6 @@ 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); @@ -1644,6 +1641,7 @@ ProcessTouchEvent(InternalEvent *ev, DeviceIntPtr dev) * events which _only_ emulate motion just work normally */ if (emulate_pointer && ev->any.type != ET_TouchUpdate) DeliverEmulatedMotionEvent(dev, ti, ev); + if (emulate_pointer && IsMaster(dev)) CheckMotion(&ev->device_event, dev); @@ -1668,6 +1666,9 @@ ProcessTouchEvent(InternalEvent *ev, DeviceIntPtr dev) if (ev->any.type == ET_TouchEnd) TouchEndTouch(dev, ti); } + + if (emulate_pointer) + UpdateDeviceState(dev, &ev->device_event); } /** commit 52ee070ef6fade5f951222408ad4eadec86f452a Author: Daniel Drake <[email protected]> Date: Fri Sep 7 21:48:35 2012 -0400 Xi: Don't check for TOUCH_END, it's never set This flag is never set, so checking for it here means that we'll never release the simulated mouse button press after the user touches (and releases) the touchscreen for the first time. Fixes a problem where the XO laptop touchpad became totally unusable after touching the screen for the first time (since X then behaved as if the mouse button was held down all the time). Signed-off-by: Daniel Drake <[email protected]> Reviewed-by: Chase Douglas <[email protected]> Signed-off-by: Peter Hutterer <[email protected]> (cherry picked from commit 3e6358ee6c33979329b78fe2097a1fdf76fb69cd) diff --git a/Xi/exevents.c b/Xi/exevents.c index 37ed5c7..c1fcc55 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -971,8 +971,6 @@ UpdateDeviceState(DeviceIntPtr device, DeviceEvent *event) if (!(event->flags & TOUCH_POINTER_EMULATED)) return DONT_PROCESS; - if (!(event->flags & TOUCH_END)) - return DONT_PROCESS; DecreaseButtonCount(device, key, &t->buttonsDown, &t->motionMask, &t->state); -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

