summaryrefslogtreecommitdiffstats
path: root/Operations.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Operations.hs')
-rw-r--r--Operations.hs4
1 files changed, 3 insertions, 1 deletions
diff --git a/Operations.hs b/Operations.hs
index 0716533..2c290f3 100644
--- a/Operations.hs
+++ b/Operations.hs
@@ -45,7 +45,7 @@ import Graphics.X11.Xlib.Extras
--
manage :: Window -> X ()
manage w = withDisplay $ \d -> do
- setInitialProperties w >> reveal w
+ setInitialProperties w -- we need this so that the modify below will not capture the wrong border size...
-- FIXME: This is pretty awkward. We can't can't let "refresh" happen
-- before the call to float, because that will resize the window and
@@ -201,6 +201,7 @@ setWMState w v = withDisplay $ \dpy -> do
-- | hide. Hide a window by unmapping it, and setting Iconified.
hide :: Window -> X ()
hide w = whenX (gets (S.member w . mapped)) $ withDisplay $ \d -> do
+ setInitialProperties w
io $ do selectInput d w (clientMask .&. complement structureNotifyMask)
unmapWindow d w
selectInput d w clientMask
@@ -214,6 +215,7 @@ hide w = whenX (gets (S.member w . mapped)) $ withDisplay $ \d -> do
-- this is harmless if the window was already visible
reveal :: Window -> X ()
reveal w = withDisplay $ \d -> do
+ setInitialProperties w
setWMState w 1 --normal
io $ mapWindow d w
modify (\s -> s { mapped = S.insert w (mapped s) })