mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-05-19 11:30:22 -07:00
skip boring: extract common iterate/filter logic
This commit is contained in:
parent
610fb0e200
commit
c2dd9b0b7a
@ -140,16 +140,15 @@ instance LayoutModifier BoringWindows Window where
|
||||
| Just SwapDown <- fromMessage m =
|
||||
do windows $ W.modify' (reverseStack . skipBoringSwapUp . reverseStack)
|
||||
return Nothing
|
||||
where skipBoring f st = fromMaybe st $ listToMaybe
|
||||
$ filter ((`notElem` bs) . W.focus)
|
||||
where skipBoring = skipBoring' ((`notElem` bs) . W.focus)
|
||||
skipBoringSwapUp = skipBoring'
|
||||
(maybe True (`notElem` bs) . listToMaybe . W.down)
|
||||
swapUp'
|
||||
skipBoring' p f st = fromMaybe st $ listToMaybe
|
||||
$ filter p
|
||||
$ drop 1
|
||||
$ take (length $ W.integrate st)
|
||||
$ iterate f st
|
||||
skipBoringSwapUp st = fromMaybe st $ listToMaybe
|
||||
$ filter (maybe True (`notElem` bs) . listToMaybe . W.down)
|
||||
$ drop 1 -- drop 0th swap
|
||||
$ take (length $ W.integrate st)
|
||||
$ iterate swapUp' st
|
||||
bs = concat $ cbs:maybeToList lbs ++ M.elems nbs
|
||||
rjl = return . Just . Left
|
||||
reverseStack (W.Stack t ls rs) = W.Stack t rs ls
|
||||
|
Loading…
x
Reference in New Issue
Block a user