From 30e11535afb3c4efc3a5cef640de44c7cd9bb561 Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Sun, 20 Dec 2020 00:48:21 +0200 Subject: [PATCH] Revert "Xi: Use current device active grab to deliver touch events if any" This reverts commit 98e3db2ac43d4a3f13475cb160c8ce0155ac7d61. --- Xi/exevents.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Xi/exevents.c b/Xi/exevents.c index 193e57e22..29c617c14 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1292,21 +1292,13 @@ RetrieveTouchDeliveryData(DeviceIntPtr dev, TouchPointInfoPtr ti, int rc; InputClients *iclients = NULL; *mask = NULL; - *grab = NULL; if (listener->type == TOUCH_LISTENER_GRAB || listener->type == TOUCH_LISTENER_POINTER_GRAB) { *grab = listener->grab; BUG_RETURN_VAL(!*grab, FALSE); - } - else if (ti->emulate_pointer && dev->deviceGrab.grab && - !dev->deviceGrab.fromPassiveGrab) { - /* There may be an active pointer grab on the device */ - *grab = dev->deviceGrab.grab; - } - if (*grab) { *client = rClient(*grab); *win = (*grab)->window; *mask = (*grab)->xi2mask; @@ -1363,6 +1355,8 @@ RetrieveTouchDeliveryData(DeviceIntPtr dev, TouchPointInfoPtr ti, /* if owner selected, oclients is NULL */ *client = oclients ? rClient(oclients) : wClient(*win); } + + *grab = NULL; } return TRUE; @@ -1508,6 +1502,16 @@ DeliverEmulatedMotionEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, &mask)) return; + /* There may be a pointer grab on the device */ + if (!grab) { + grab = dev->deviceGrab.grab; + if (grab) { + win = grab->window; + mask = grab->xi2mask; + client = rClient(grab); + } + } + DeliverTouchEmulatedEvent(dev, ti, (InternalEvent*)&motion, &ti->listeners[0], client, win, grab, mask); }