From b6c8cfcec548a0fc1c473ef8aeb691a1f3322c55 Mon Sep 17 00:00:00 2001 From: David Roundy Date: Wed, 16 May 2007 04:21:23 +0200 Subject: throttle the exponential expense when many windows are present. darcs-hash:20070516022123-72aca-6ddd484c729d2a107c263e263a451228179e3cc8.gz --- Mosaic.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'Mosaic.hs') diff --git a/Mosaic.hs b/Mosaic.hs index 2d9cc60..e90bc4d 100644 --- a/Mosaic.hs +++ b/Mosaic.hs @@ -50,6 +50,9 @@ expandWindow = ExpandWindow shrinkWindow = ShrinkWindow squareWindow = SquareWindow +largeNumber :: Int +largeNumber = 1000 + mosaic :: Rational -> Rational -> M.Map NamedWindow WindowRater -> M.Map NamedWindow Area -> Layout mosaic delta tileFrac raters areas = Layout { doLayout = mosaicL tileFrac raters areas , modifyLayout = mlayout } @@ -109,7 +112,7 @@ mosaicL f raters areas origRect origws map (fmap M . catRated . map (\(ws',r') -> my_mosaic r' (otherDirection d) ws')) $ map (\ws' -> zip ws' $ partitionR d r $ map sumareas ws') $ - init $ allsplits ws + take largeNumber $ init $ allsplits ws where minL [] = myerror "minL on empty list" minL [a] = a minL (a:b:c) = minL (min a b:c) -- cgit v1.2.3