From 5bfcb6131b40139698d1f0ee7db4060f6facb034 Mon Sep 17 00:00:00 2001 From: Don Stewart Date: Wed, 6 Feb 2008 20:48:58 +0100 Subject: Lift initColor exceptions into Maybe We should audit all X11 Haskell lib calls we make for whether they throw undocumented exceptions, and then banish that. darcs-hash:20080206194858-cba2c-143b6edd906a9ddfcc8ff85b4a42ebea0f3462bf --- XMonad/Operations.hs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'XMonad/Operations.hs') diff --git a/XMonad/Operations.hs b/XMonad/Operations.hs index 0e96893..46eebf8 100644 --- a/XMonad/Operations.hs +++ b/XMonad/Operations.hs @@ -31,8 +31,9 @@ import qualified Data.Map as M import qualified Data.Set as S import Control.Applicative -import Control.Monad.State import Control.Monad.Reader +import Control.Monad.State +import qualified Control.Exception as C import System.IO import Graphics.X11.Xlib @@ -381,8 +382,9 @@ cleanMask km = do return (complement (nlm .|. lockMask) .&. km) -- | Get the Pixel value for a named color -initColor :: Display -> String -> IO Pixel -initColor dpy c = (color_pixel . fst) <$> allocNamedColor dpy colormap c +initColor :: Display -> String -> IO (Maybe Pixel) +initColor dpy c = C.handle (\_ -> return Nothing) $ + (Just . color_pixel . fst) <$> allocNamedColor dpy colormap c where colormap = defaultColormap dpy (defaultScreen dpy) ------------------------------------------------------------------------ -- cgit v1.2.3