[PATCH 18/21] dix: move delivery stop condition out of event mask
Peter Hutterer
peter.hutterer at who-t.net
Thu Dec 8 19:36:19 PST 2011
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 <peter.hutterer at who-t.net>
---
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
More information about the xorg-devel
mailing list