diff options
-rw-r--r-- | Main.hs | 7 | ||||
-rw-r--r-- | Operations.hs | 2 |
2 files changed, 7 insertions, 2 deletions
@@ -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 |