$OpenBSD: patch-XMonad_Operations_hs,v 1.3 2008/04/16 21:00:56 kili Exp $

Backport for ghc-6.6 and X11-extras.

--- XMonad/Operations.hs.orig	Sat Mar 29 21:59:44 2008
+++ XMonad/Operations.hs	Mon Mar 31 23:05:12 2008
@@ -172,7 +172,7 @@ windows f = do
     -- 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)
+    mapM_ (flip setWMState 0) (W.allWindows old \\ W.allWindows ws)
 
     clearEvents enterWindowMask
 
@@ -188,7 +188,7 @@ hide w = whenX (gets (S.member w . mapped)) $ withDisp
     io $ do selectInput d w (clientMask .&. complement structureNotifyMask)
             unmapWindow d w
             selectInput d w clientMask
-    setWMState w iconicState
+    setWMState w 3
     -- this part is key: we increment the waitingUnmap counter to distinguish
     -- between client and xmonad initiated unmaps.
     modify (\s -> s { waitingUnmap = M.insertWith (+) w 1 (waitingUnmap s)
@@ -198,7 +198,7 @@ hide w = whenX (gets (S.member w . mapped)) $ withDisp
 -- this is harmless if the window was already visible
 reveal :: Window -> X ()
 reveal w = withDisplay $ \d -> do
-    setWMState w normalState
+    setWMState w 1
     io $ mapWindow d w
     modify (\s -> s { mapped = S.insert w (mapped s) })
 
@@ -209,7 +209,7 @@ clientMask = structureNotifyMask .|. enterWindowMask .
 -- | Set some properties when we initially gain control of a window
 setInitialProperties :: Window -> X ()
 setInitialProperties w = asks normalBorder >>= \nb -> withDisplay $ \d -> do
-    setWMState w iconicState
+    setWMState w 3
     io $ selectInput d w $ clientMask
     bw <- asks (borderWidth . config)
     io $ setWindowBorderWidth d w bw
