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 =
|
| Just SwapDown <- fromMessage m =
|
||||||
do windows $ W.modify' (reverseStack . skipBoringSwapUp . reverseStack)
|
do windows $ W.modify' (reverseStack . skipBoringSwapUp . reverseStack)
|
||||||
return Nothing
|
return Nothing
|
||||||
where skipBoring f st = fromMaybe st $ listToMaybe
|
where skipBoring = skipBoring' ((`notElem` bs) . W.focus)
|
||||||
$ filter ((`notElem` bs) . W.focus)
|
skipBoringSwapUp = skipBoring'
|
||||||
$ drop 1
|
(maybe True (`notElem` bs) . listToMaybe . W.down)
|
||||||
$ take (length $ W.integrate st)
|
swapUp'
|
||||||
$ iterate f st
|
skipBoring' p f st = fromMaybe st $ listToMaybe
|
||||||
skipBoringSwapUp st = fromMaybe st $ listToMaybe
|
$ filter p
|
||||||
$ filter (maybe True (`notElem` bs) . listToMaybe . W.down)
|
$ drop 1
|
||||||
$ drop 1 -- drop 0th swap
|
$ take (length $ W.integrate st)
|
||||||
$ take (length $ W.integrate st)
|
$ iterate f st
|
||||||
$ iterate swapUp' st
|
|
||||||
bs = concat $ cbs:maybeToList lbs ++ M.elems nbs
|
bs = concat $ cbs:maybeToList lbs ++ M.elems nbs
|
||||||
rjl = return . Just . Left
|
rjl = return . Just . Left
|
||||||
reverseStack (W.Stack t ls rs) = W.Stack t rs ls
|
reverseStack (W.Stack t ls rs) = W.Stack t rs ls
|
||||||
|
Loading…
x
Reference in New Issue
Block a user