From cea3e0dfd8b4f1b1fcab1ce85947a040174ac902 Mon Sep 17 00:00:00 2001 From: Spencer Janssen Date: Thu, 1 Nov 2007 16:23:02 +0100 Subject: Layouts.Choose: handle ReleaseResources darcs-hash:20071101152302-a5988-8e1379ea75eb0423007776e9ea4e9d293f61840e --- Layouts.hs | 8 ++++++++ 1 file changed, 8 insertions(+) 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 -- cgit v1.2.3