aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSpencer Janssen <sjanssen@cse.unl.edu>2007-11-01 16:23:02 +0100
committerSpencer Janssen <sjanssen@cse.unl.edu>2007-11-01 16:23:02 +0100
commitc016f44e39d001c22c30b4f3e0156e7a88dd50a9 (patch)
treeb5fab07fe16bb3fbd085770992596aa4831f7c7c
parent87a4ebebc9883f9975eea21c21323ef357c25d2a (diff)
downloadxmonad-c016f44e39d001c22c30b4f3e0156e7a88dd50a9.tar.gz
xmonad-c016f44e39d001c22c30b4f3e0156e7a88dd50a9.tar.xz
xmonad-c016f44e39d001c22c30b4f3e0156e7a88dd50a9.zip
Layouts.Choose: handle ReleaseResources
darcs-hash:20071101152302-a5988-8e1379ea75eb0423007776e9ea4e9d293f61840e.gz
-rw-r--r--Layouts.hs8
1 files changed, 8 insertions, 0 deletions
diff --git a/Layouts.hs b/Layouts.hs
index 2d9facf..30c70ea 100644
--- a/Layouts.hs
+++ b/Layouts.hs
@@ -71,6 +71,14 @@ instance (LayoutClass l a, LayoutClass r a) => LayoutClass (Choose l r) a where
mr <- handleMessage r (SomeMessage FirstLayout)
return . Just . SRight l $ fromMaybe r mr
+ handleMessage lr m | Just ReleaseResources <- fromMessage m =
+ liftM2 ((Just .) . cons)
+ (fmap (fromMaybe l) $ handleMessage l m)
+ (fmap (fromMaybe r) $ handleMessage r m)
+ where (cons, l, r) = case lr of
+ (SLeft r l) -> (flip SLeft, l, r)
+ (SRight l r) -> (SRight, l, r)
+
-- The default cases for left and right:
handleMessage (SLeft r l) m = fmap (fmap $ SLeft r) $ handleMessage l m
handleMessage (SRight l r) m = fmap (fmap $ SRight l) $ handleMessage r m