From 722c51960dd4948b8a64f8eff115fa69da597ef9 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Mon, 22 Sep 2008 11:04:26 -0400 Subject: Don't remap windows for SaveSetUnmap Since ReparentWindow() does a unmap/map pair for windows that are already mapped, for saveset windows with SaveSetUnmap, we must unmap the window before calling ReparentWindow() to avoid the generation of MapRequest events, and so forth. --- dix/window.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dix/window.c b/dix/window.c index 6cba23d0b..116c1e554 100644 --- a/dix/window.c +++ b/dix/window.c @@ -3026,6 +3026,11 @@ HandleSaveSet(ClientPtr client) { if (pParent != pWin->parent) { +#ifdef XFIXES + /* unmap first so that ReparentWindow doesn't remap */ + if (!SaveSetRemap (client->saveSet[j])) + UnmapWindow(pWin, FALSE); +#endif ReparentWindow(pWin, pParent, pWin->drawable.x - wBorderWidth (pWin) - pParent->drawable.x, pWin->drawable.y - wBorderWidth (pWin) - pParent->drawable.y, -- cgit v1.2.3