summaryrefslogtreecommitdiff
path: root/dix/window.c
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2012-09-20 11:16:25 -0400
committerKeith Packard <keithp@keithp.com>2012-09-23 10:41:41 -0700
commit387b1ac33ca63d27e42d4f61cf248bafb7c43c17 (patch)
tree0841b7b2bca1b5582ba484a0e9f483802ab7c5ed /dix/window.c
parentd20cc0fca4e36ad9bdbda8950c4466b1976e70a1 (diff)
dix: Factor out DeliverUnmapNotify
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/window.c')
-rw-r--r--dix/window.c31
1 files changed, 15 insertions, 16 deletions
diff --git a/dix/window.c b/dix/window.c
index 127f4c148..40f251634 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -2737,6 +2737,17 @@ UnrealizeTree(WindowPtr pWin, Bool fromConfigure)
}
}
+static void
+DeliverUnmapNotify(WindowPtr pWin, Bool fromConfigure)
+{
+ xEvent event = {
+ .u.unmapNotify.window = pWin->drawable.id,
+ .u.unmapNotify.fromConfigure = fromConfigure
+ };
+ event.u.u.type = UnmapNotify;
+ DeliverEvents(pWin, &event, 1, NullWindow);
+}
+
/*****
* UnmapWindow
* If the window is already unmapped, this request has no effect.
@@ -2755,14 +2766,8 @@ UnmapWindow(WindowPtr pWin, Bool fromConfigure)
if ((!pWin->mapped) || (!(pParent = pWin->parent)))
return Success;
- if (SubStrSend(pWin, pParent) && MapUnmapEventsEnabled(pWin)) {
- xEvent event = {
- .u.unmapNotify.window = pWin->drawable.id,
- .u.unmapNotify.fromConfigure = fromConfigure
- };
- event.u.u.type = UnmapNotify;
- DeliverEvents(pWin, &event, 1, NullWindow);
- }
+ if (SubStrSend(pWin, pParent) && MapUnmapEventsEnabled(pWin))
+ DeliverUnmapNotify(pWin, fromConfigure);
if (wasViewable && !fromConfigure) {
pWin->valdata = UnmapValData;
(*pScreen->MarkOverlappedWindows) (pWin, pWin->nextSib, &pLayerWin);
@@ -2813,14 +2818,8 @@ UnmapSubwindows(WindowPtr pWin)
for (pChild = pWin->lastChild; pChild != pHead; pChild = pChild->prevSib) {
if (pChild->mapped) {
- if (parentNotify || StrSend(pChild)) {
- xEvent event = {
- .u.unmapNotify.window = pChild->drawable.id,
- .u.unmapNotify.fromConfigure = xFalse
- };
- event.u.u.type = UnmapNotify;
- DeliverEvents(pChild, &event, 1, NullWindow);
- }
+ if (parentNotify || StrSend(pChild))
+ DeliverUnmapNotify(pChild, xFalse);
if (pChild->viewable) {
pChild->valdata = UnmapValData;
anyMarked = TRUE;