mirror of
https://github.com/xmonad/xmonad.git
synced 2025-07-31 20:21:52 -07:00
Add StackSet.allWindows
This commit is contained in:
@@ -21,7 +21,7 @@ module StackSet (
|
||||
-- * Xinerama operations
|
||||
-- $xinerama
|
||||
lookupWorkspace,
|
||||
screens, workspaces,
|
||||
screens, workspaces, allWindows,
|
||||
-- * Operations on the current stack
|
||||
-- $stackOperations
|
||||
peek, index, integrate, integrate', differentiate,
|
||||
@@ -43,7 +43,7 @@ module StackSet (
|
||||
|
||||
import Prelude hiding (filter)
|
||||
import Data.Maybe (listToMaybe,fromJust)
|
||||
import qualified Data.List as L (deleteBy,find,splitAt,filter)
|
||||
import qualified Data.List as L (deleteBy,find,splitAt,filter,nub)
|
||||
import Data.List ( (\\) )
|
||||
import qualified Data.Map as M (Map,insert,delete,empty)
|
||||
|
||||
@@ -400,6 +400,10 @@ screens s = current s : visible s
|
||||
workspaces :: StackSet i l a s sd -> [Workspace i l a]
|
||||
workspaces s = workspace (current s) : map workspace (visible s) ++ hidden s
|
||||
|
||||
-- | Get a list of all windows in the StackSet in no particular order
|
||||
allWindows :: Eq a => StackSet i l a s sd -> [a]
|
||||
allWindows = L.nub . concatMap (integrate' . stack) . workspaces
|
||||
|
||||
-- | Is the given tag present in the StackSet?
|
||||
tagMember :: Eq i => i -> StackSet i l a s sd -> Bool
|
||||
tagMember t = elem t . map tag . workspaces
|
||||
|
@@ -363,6 +363,8 @@ prop_findIndex (x :: T) =
|
||||
, i <- focus t : up t ++ down t
|
||||
]
|
||||
|
||||
prop_allWindowsMember w (x :: T) = (w `elem` allWindows x) ==> member w x
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- 'insert'
|
||||
|
||||
@@ -687,6 +689,7 @@ main = do
|
||||
,("focusWindow works" , mytest prop_focusWindow_works)
|
||||
|
||||
,("findIndex" , mytest prop_findIndex)
|
||||
,("allWindows/member" , mytest prop_allWindowsMember)
|
||||
|
||||
,("insert: invariant" , mytest prop_insertUp_I)
|
||||
,("insert/new" , mytest prop_insert_empty)
|
||||
|
Reference in New Issue
Block a user