From 52dbdd8c41886b8e65ad0249b3069914efcb95dd Mon Sep 17 00:00:00 2001 From: Spencer Janssen Date: Fri, 2 May 2008 12:42:49 +0200 Subject: NamedWindows: when converting the text property, handle the empty list. This fixes a "Prelude.head" exception observed with windows that have no title. Reproduce by placing several windows in the tabbed layout, then starting 'xterm -name ""'. Thanks to Andrea for pointing out the issue. darcs-hash:20080502104249-a5988-c460b42456d65ad71016a7423e713b8250f1aa5c.gz --- XMonad/Util/NamedWindows.hs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'XMonad/Util/NamedWindows.hs') 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 -- cgit v1.2.3