summaryrefslogtreecommitdiff
path: root/dix
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2012-09-20 11:16:23 -0400
committerKeith Packard <keithp@keithp.com>2012-09-23 10:40:38 -0700
commit63843cb70030812bb3a311b2e8dfb0d1b0a75176 (patch)
tree741de65acb08dd64366c9e3d461fa0134dcc88cb /dix
parentdab7a1ec7fd97e07405e0b01dc1f1ec6e5fc2e7c (diff)
dix: Factor out MaybeDeliverMapRequest
Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'dix')
-rw-r--r--dix/window.c40
1 files changed, 18 insertions, 22 deletions
diff --git a/dix/window.c b/dix/window.c
index 6fb420d3c..804ac0ebb 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -2529,6 +2529,20 @@ MapUnmapEventsEnabled(WindowPtr pWin)
return pWin != windowDisableMapUnmapEvents;
}
+static Bool
+MaybeDeliverMapRequest(WindowPtr pWin, WindowPtr pParent, ClientPtr client)
+{
+ xEvent event = {
+ .u.mapRequest.window = pWin->drawable.id,
+ .u.mapRequest.parent = pParent->drawable.id
+ };
+ event.u.u.type = MapRequest;
+
+ return MaybeDeliverEventsToClient(pParent, &event, 1,
+ SubstructureRedirectMask,
+ client) == 1;
+}
+
/*****
* MapWindow
* If some other client has selected SubStructureReDirect on the parent
@@ -2557,18 +2571,9 @@ MapWindow(WindowPtr pWin, ClientPtr client)
if ((pParent = pWin->parent)) {
Bool anyMarked;
- if ((!pWin->overrideRedirect) && (RedirectSend(pParent))) {
- xEvent event = {
- .u.mapRequest.window = pWin->drawable.id,
- .u.mapRequest.parent = pParent->drawable.id
- };
- event.u.u.type = MapRequest;
-
- if (MaybeDeliverEventsToClient(pParent, &event, 1,
- SubstructureRedirectMask,
- client) == 1)
+ if ((!pWin->overrideRedirect) && (RedirectSend(pParent)))
+ if (MaybeDeliverMapRequest(pWin, pParent, client))
return Success;
- }
pWin->mapped = TRUE;
if (SubStrSend(pWin, pParent) && MapUnmapEventsEnabled(pWin)) {
@@ -2640,18 +2645,9 @@ MapSubwindows(WindowPtr pParent, ClientPtr client)
anyMarked = FALSE;
for (pWin = pParent->firstChild; pWin; pWin = pWin->nextSib) {
if (!pWin->mapped) {
- if (parentRedirect && !pWin->overrideRedirect) {
- xEvent event = {
- .u.mapRequest.window = pWin->drawable.id,
- .u.mapRequest.parent = pParent->drawable.id
- };
- event.u.u.type = MapRequest;
-
- if (MaybeDeliverEventsToClient(pParent, &event, 1,
- SubstructureRedirectMask,
- client) == 1)
+ if (parentRedirect && !pWin->overrideRedirect)
+ if (MaybeDeliverMapRequest(pWin, pParent, client))
continue;
- }
pWin->mapped = TRUE;
if (parentNotify || StrSend(pWin)) {