From f73bde137e9737230932553586f6ad84727544de Mon Sep 17 00:00:00 2001 From: Spencer Janssen Date: Thu, 13 Dec 2007 03:17:04 +0100 Subject: Add support for _NET_WM_STRUT_PARTIAL darcs-hash:20071213021704-a5988-09d4118b417f1e25f1f640cc28d5e3fee5af8276.gz --- XMonad/Hooks/ManageDocks.hs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'XMonad/Hooks/ManageDocks.hs') diff --git a/XMonad/Hooks/ManageDocks.hs b/XMonad/Hooks/ManageDocks.hs index 6d800d6..d256402 100644 --- a/XMonad/Hooks/ManageDocks.hs +++ b/XMonad/Hooks/ManageDocks.hs @@ -25,6 +25,8 @@ module XMonad.Hooks.ManageDocks ( import XMonad import Foreign.C.Types (CLong) import Data.Maybe (catMaybes) +import Control.Monad + -- $usage -- To use this module, add the following import to @~\/.xmonad\/xmonad.hs@: -- @@ -68,15 +70,15 @@ checkDock = ask >>= \w -> liftX $ do -- Gets the STRUT config, if present, in xmonad gap order getStrut :: Window -> X (Maybe (Int, Int, Int, Int)) getStrut w = do - a <- getAtom "_NET_WM_STRUT" - mbr <- getProp a w - case mbr of - Just [l,r,t,b] -> return (Just ( - fromIntegral t, - fromIntegral b, - fromIntegral l, - fromIntegral r)) - _ -> return Nothing + s <- getAtom "_NET_WM_STRUT" + sp <- getAtom "_NET_WM_STRUT_PARTIAL" + liftM2 (\a b -> mplus (parse a) (parse b)) + (getProp s w) + (getProp sp w) + where + parse xs = case xs of + Just (l : r : t : b : _) -> Just (fi t, fi b, fi l, fi r) + _ -> Nothing -- | -- Helper to read a property -- cgit v1.2.3