summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--XMonad/Operations.hs6
1 files changed, 5 insertions, 1 deletions
diff --git a/XMonad/Operations.hs b/XMonad/Operations.hs
index 26a3998..a2f4cf5 100644
--- a/XMonad/Operations.hs
+++ b/XMonad/Operations.hs
@@ -113,7 +113,6 @@ windows f = do
XConf { display = d , normalBorder = nbc, focusedBorder = fbc } <- ask
mapM_ setInitialProperties (W.allWindows ws \\ W.allWindows old)
- mapM_ (flip setWMState withdrawnState) (W.allWindows old \\ W.allWindows ws)
whenJust (W.peek old) $ \otherw -> io $ setWindowBorder d otherw nbc
modify (\s -> s { windowset = ws })
@@ -168,6 +167,11 @@ windows f = do
-- given a position by a layout now.
mapM_ hide (nub oldvisible \\ visible)
+ -- all windows that are no longer in the windowset are marked as
+ -- withdrawn, it is important to do this after the above, otherwise 'hide'
+ -- will overwrite withdrawnState with iconicState
+ mapM_ (flip setWMState withdrawnState) (W.allWindows old \\ W.allWindows ws)
+
clearEvents enterWindowMask
-- | setWMState. set the WM_STATE property