diff options
Diffstat (limited to '')
-rw-r--r-- | StackSet.hs | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/StackSet.hs b/StackSet.hs index 39e2000..89a8484 100644 --- a/StackSet.hs +++ b/StackSet.hs @@ -1,3 +1,4 @@ +{-# OPTIONS -fglasgow-exts #-} ----------------------------------------------------------------------------- -- | -- Module : StackSet @@ -14,9 +15,10 @@ -- set is always current. Elements may appear only once in the entire -- stack set. -- --- A StackSet provides a nice data structure for multiscreen --- window managers, where each screen has a stack of windows, and a window --- may be on only 1 screen at any given time. +-- A StackSet provides a nice data structure for window managers with +-- multiple physical screens, and multiple workspaces, where each screen +-- has a stack of windows, and a window may be on only 1 screen at any +-- given time. -- module StackSet where @@ -27,11 +29,6 @@ import qualified Data.Map as M ------------------------------------------------------------------------ --- --- N.B we probably want to think about strict 'adjust' and inserts on --- these data structures in the long run. --- - -- | The StackSet data structure. A table of stacks, with a current pointer data StackSet a = StackSet @@ -226,12 +223,6 @@ promote w = w { stacks = M.adjust next (current w) (stacks w) } where next [] = [] next xs = last xs : init xs --- --- case M.lookup k (cache w) of --- Nothing -> w --- Just i -> w { stacks = M.adjust (\ks -> k : filter (/= k) ks) i (stacks w) } --- - -- | elemAfter :: Eq a => a -> [a] -> Maybe a elemAfter w ws = listToMaybe . filter (/= w) . dropWhile (/= w) $ ws ++ ws |