From af17b5c499ded807395c7ef02254d5af8ddc4667 Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Mon, 15 Feb 2021 14:52:32 +0200 Subject: [PATCH] dix: Use correct listener to deliver touch end events This fixes an problem left in f682e0563f736ed2c2c612ed575e05b6e3db945e due to an incorrect cherry-pick. We must use old listener->listener to deliver the touch event. Otherwise grab won't let the event through and the abovementioned commit has no effect. Signed-off-by: Povilas Kanapickas --- dix/events.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/dix/events.c b/dix/events.c index b05c95c43..20a40ecb2 100644 --- a/dix/events.c +++ b/dix/events.c @@ -1480,10 +1480,6 @@ UpdateTouchesForGrab(DeviceIntPtr mouse) if (ti->active && CLIENT_BITS(listener->listener) == grab->resource) { - listener->listener = grab->resource; - listener->level = grab->grabtype; - listener->window = grab->window; - if (grab->grabtype == CORE || grab->grabtype == XI || !xi2mask_isset(grab->xi2mask, mouse, XI_TouchBegin)) { @@ -1501,6 +1497,9 @@ UpdateTouchesForGrab(DeviceIntPtr mouse) listener->type = TOUCH_LISTENER_GRAB; } + listener->listener = grab->resource; + listener->level = grab->grabtype; + listener->window = grab->window; listener->state = TOUCH_LISTENER_IS_OWNER; if (listener->grab)