mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-08-22 07:23:47 -07:00
SmartBorders even for empty layouts
Fixes: http://code.google.com/p/xmonad/issues/detail?id=223
This commit is contained in:
@@ -75,10 +75,15 @@ data SmartBorder a = SmartBorder [a] deriving (Read, Show)
|
|||||||
instance LayoutModifier SmartBorder Window where
|
instance LayoutModifier SmartBorder Window where
|
||||||
unhook (SmartBorder s) = asks (borderWidth . config) >>= setBorders s
|
unhook (SmartBorder s) = asks (borderWidth . config) >>= setBorders s
|
||||||
|
|
||||||
redoLayout (SmartBorder s) _ st wrs = do
|
redoLayout sb _ st wrs = genericLayoutMod sb (W.integrate st) wrs
|
||||||
|
|
||||||
|
emptyLayoutMod sb _ wrs = genericLayoutMod sb [] wrs
|
||||||
|
|
||||||
|
genericLayoutMod :: (SmartBorder Window) -> [Window] -> [(Window, b)] ->
|
||||||
|
X ([(Window, b)], Maybe (SmartBorder Window))
|
||||||
|
genericLayoutMod (SmartBorder s) managedwindows wrs = do
|
||||||
wset <- gets windowset
|
wset <- gets windowset
|
||||||
let managedwindows = W.integrate st
|
let screens = filter (nonzerorect . screenRect . W.screenDetail) . W.screens $ wset
|
||||||
screens = filter (nonzerorect . screenRect . W.screenDetail) . W.screens $ wset
|
|
||||||
ws = tiled ++ floating
|
ws = tiled ++ floating
|
||||||
tiled = case filter (`elem` managedwindows) $ map fst wrs of
|
tiled = case filter (`elem` managedwindows) $ map fst wrs of
|
||||||
[w] | singleton screens -> [w]
|
[w] | singleton screens -> [w]
|
||||||
|
Reference in New Issue
Block a user