aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--XMonad/Util/NamedWindows.hs7
1 files changed, 6 insertions, 1 deletions
diff --git a/XMonad/Util/NamedWindows.hs b/XMonad/Util/NamedWindows.hs
index c29519e..4ab7078 100644
--- a/XMonad/Util/NamedWindows.hs
+++ b/XMonad/Util/NamedWindows.hs
@@ -44,12 +44,17 @@ instance Show NamedWindow where
getName :: Window -> X NamedWindow
getName w = withDisplay $ \d -> do
+ -- TODO, this code is ugly and convoluted -- clean it up
let getIt = bracket getProp (xFree . tp_value) (fmap (`NW` w) . copy)
getProp = (internAtom d "_NET_WM_NAME" False >>= getTextProperty d w)
`catch` \_ -> getTextProperty d w wM_NAME
- copy prop = head `fmap` wcTextPropertyToTextList d prop
+ copy prop = do
+ xs <- wcTextPropertyToTextList d prop
+ return $ case xs of
+ [] -> ""
+ (x:_) -> x
io $ getIt `catch` \_ -> ((`NW` w) . resName) `fmap` getClassHint d w