summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Main.hs7
-rw-r--r--Operations.hs2
2 files changed, 7 insertions, 2 deletions
diff --git a/Main.hs b/Main.hs
index 64929c5..aa5561d 100644
--- a/Main.hs
+++ b/Main.hs
@@ -113,8 +113,13 @@ scan dpy rootw = do
-- TODO: scan for windows that are either 'IsViewable' or where WM_STATE ==
-- Iconic
where ok w = do wa <- getWindowAttributes dpy w
+ a <- internAtom dpy "WM_STATE" False
+ p <- getWindowProperty32 dpy a w
+ let ic = case p of
+ Just (3:_) -> True -- 3 for iconified
+ _ -> False
return $ not (wa_override_redirect wa)
- && wa_map_state wa == waIsViewable
+ && (wa_map_state wa == waIsViewable || ic)
-- | Grab the keys back
grabKeys :: Display -> Window -> IO ()
diff --git a/Operations.hs b/Operations.hs
index ee5a5bc..5a1d1b5 100644
--- a/Operations.hs
+++ b/Operations.hs
@@ -48,7 +48,7 @@ import qualified Data.Traversable as T
-- border set, and its event mask set.
--
manage :: Window -> X ()
-manage w = withDisplay $ \d -> do
+manage w = whenX (fmap not $ isClient w) $ withDisplay $ \d -> do
setInitialProperties w >> reveal w
-- FIXME: This is pretty awkward. We can't can't let "refresh" happen