Previously, this was only called if there was a mask match, so even if we
had a no-propagate flag set or a stopAt window specified, if no mask
triggered on the window we would recurse up to the root window and
eventually deliver.
Move this, so that the stopAt and do-not-propagate mask is honoured.

Signed-off-by: Peter Hutterer <[email protected]>
---
 dix/events.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/dix/events.c b/dix/events.c
index 9fcd447..05590e2 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -2693,12 +2693,13 @@ DeliverDeviceEvents(WindowPtr pWin, InternalEvent 
*event, GrabPtr grab,
                     break;
             }
 
-            if ((deliveries < 0) || (pWin == stopAt) ||
+        }
+
+        if ((deliveries < 0) || (pWin == stopAt) ||
                 (mask & EVENT_DONT_PROPAGATE_MASK))
-            {
-                deliveries = 0;
-                break;
-            }
+        {
+            deliveries = 0;
+            break;
         }
 
         child = pWin->drawable.id;
-- 
1.7.7.1

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to