diff options
author | Adam Jackson <ajax@redhat.com> | 2012-09-20 11:16:25 -0400 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-09-23 10:41:41 -0700 |
commit | 387b1ac33ca63d27e42d4f61cf248bafb7c43c17 (patch) | |
tree | 0841b7b2bca1b5582ba484a0e9f483802ab7c5ed /dix/window.c | |
parent | d20cc0fca4e36ad9bdbda8950c4466b1976e70a1 (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.c | 31 |
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; |