From 3c00a573b43a8eb242ebe3e61c77b1ed0182f00c Mon Sep 17 00:00:00 2001 From: Spencer Janssen Date: Tue, 11 Dec 2007 09:01:17 +0100 Subject: Make windows responsible for setting withdrawn state darcs-hash:20071211080117-a5988-c992f6c8147b3a91603afe3ba604c235b5a3c211.gz --- XMonad/Operations.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'XMonad') diff --git a/XMonad/Operations.hs b/XMonad/Operations.hs index e84b30d..cce197b 100644 --- a/XMonad/Operations.hs +++ b/XMonad/Operations.hs @@ -72,9 +72,7 @@ manage w = whenX (not <$> isClient w) $ withDisplay $ \d -> do -- list, on whatever workspace it is. -- unmanage :: Window -> X () -unmanage w = do - windows (W.delete w) - setWMState w withdrawnState +unmanage = windows . W.delete -- | Modify the size of the status gap at the top of the current screen -- Taking a function giving the current screen, and current geometry. @@ -113,7 +111,10 @@ windows f = do let oldvisible = concatMap (W.integrate' . W.stack . W.workspace) $ W.current old : W.visible old ws = f old 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 }) -- cgit v1.2.3