diff options
Diffstat (limited to 'composite/compalloc.c')
-rw-r--r-- | composite/compalloc.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/composite/compalloc.c b/composite/compalloc.c index aabacbe7b..1deef685c 100644 --- a/composite/compalloc.c +++ b/composite/compalloc.c @@ -101,7 +101,11 @@ compRedirectWindow (ClientPtr pClient, WindowPtr pWin, int update) return BadAlloc; } if (wasMapped) + { + DisableMapUnmapEvents (pWin); UnmapWindow (pWin, FALSE); + EnableMapUnmapEvents (pWin); + } REGION_NULL (pScreen, &cw->borderClip); cw->update = CompositeRedirectAutomatic; @@ -135,7 +139,9 @@ compRedirectWindow (ClientPtr pClient, WindowPtr pWin, int update) { Bool overrideRedirect = pWin->overrideRedirect; pWin->overrideRedirect = TRUE; + DisableMapUnmapEvents (pWin); MapWindow (pWin, pClient); + EnableMapUnmapEvents (pWin); pWin->overrideRedirect = overrideRedirect; } @@ -169,7 +175,11 @@ compFreeClientWindow (WindowPtr pWin, XID id) if (!cw->clients) { if (wasMapped) + { + DisableMapUnmapEvents (pWin); UnmapWindow (pWin, FALSE); + EnableMapUnmapEvents (pWin); + } if (pWin->redirectDraw) compFreePixmap (pWin); @@ -193,7 +203,9 @@ compFreeClientWindow (WindowPtr pWin, XID id) { Bool overrideRedirect = pWin->overrideRedirect; pWin->overrideRedirect = TRUE; + DisableMapUnmapEvents (pWin); MapWindow (pWin, clients[CLIENT_ID(id)]); + EnableMapUnmapEvents (pWin); pWin->overrideRedirect = overrideRedirect; } } |