From 636647bc7f9ed10918cbb228f7d448c8cf733667 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 13 Feb 2013 11:26:11 +1000 Subject: dix: don't prepend an activated passive grab to the listeners If the device is currently grabbed as the result of a passive grab activating, do not prepend that grab to the listeners (unlike active grabs). Otherwise, a client with a passive pointer grab will prevent touch grabs from activating higher up in the window stack. Signed-off-by: Peter Hutterer (cherry picked from commit 363b6387da6e669099a2da3861c73a29808295a6) --- dix/touch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dix/touch.c b/dix/touch.c index 3027bbbf2..5d6e2a796 100644 --- a/dix/touch.c +++ b/dix/touch.c @@ -874,7 +874,7 @@ TouchSetupListeners(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev) SpritePtr sprite = &ti->sprite; WindowPtr win; - if (dev->deviceGrab.grab) + if (dev->deviceGrab.grab && !dev->deviceGrab.fromPassiveGrab) TouchAddActiveGrabListener(dev, ti, ev, dev->deviceGrab.grab); /* We set up an active touch listener for existing touches, but not any -- cgit v1.2.3