LayoutModifier: reimplement ModifiedLayout using runLayout and more

- change modifyLayout type to get the Workspace
- updated ResizeScreen and ManageDocks accordingly.
This commit is contained in:
Andrea Rossato
2008-02-23 07:56:10 +00:00
parent 9ac91e3a15
commit 3ca4966b06
3 changed files with 16 additions and 20 deletions

View File

@@ -63,14 +63,14 @@ data ResizeScreen a = ResizeScreen ResizeMode Int
data ResizeMode = T | B | L | R deriving (Read, Show)
instance LayoutModifier ResizeScreen a where
modifyLayout m l rect@(Rectangle x y w h) s
modifyLayout m ws rect@(Rectangle x y w h)
| ResizeScreen L i <- m = resize $ Rectangle (x + fi i) y (w - fi i) h
| ResizeScreen R i <- m = resize $ Rectangle x y (w - fi i) h
| ResizeScreen T i <- m = resize $ Rectangle x (y + fi i) w (h - fi i)
| ResizeScreen B i <- m = resize $ Rectangle x y w (h - fi i)
| WithNewScreen r <- m = resize r
| otherwise = resize rect
where resize nr = doLayout l nr s
where resize nr = runLayout ws nr
pureMess (ResizeScreen d _) m
| Just (SetTheme t) <- fromMessage m = Just $ ResizeScreen d (fi $ decoHeight t)