mirror of
https://github.com/xmonad/xmonad.git
synced 2025-08-07 07:31:51 -07:00
and the tests still run
This commit is contained in:
19
StackSet.hs
19
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
|
||||
|
Reference in New Issue
Block a user