From 86522a27b03a75505e5708648a2fc45375d86564 Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Fri, 14 May 2021 00:36:32 +0100 Subject: [PATCH] X.A.CycleRecentWS: Make unView work with greedyView as well Entirely unnecessary for the current version of `cycleWindowSets`, but if anyone ever wants to use `greedyView`, this shows that it's not at all complicated to adapt `unView` to that. --- XMonad/Actions/CycleRecentWS.hs | 3 ++- tests/CycleRecentWS.hs | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/XMonad/Actions/CycleRecentWS.hs b/XMonad/Actions/CycleRecentWS.hs index 3a72d20b..bc5182eb 100644 --- a/XMonad/Actions/CycleRecentWS.hs +++ b/XMonad/Actions/CycleRecentWS.hs @@ -136,8 +136,9 @@ cycleWindowSets genOptions mods keyNext keyPrev = do -- new 'WindowSet' may have accumulated. unView :: forall i l a s sd. (Eq i, Eq s) => StackSet i l a s sd -> StackSet i l a s sd -> StackSet i l a s sd -unView w0 = fixOrderH . fixOrderV . view (currentTag w0) +unView w0 w1 = fixOrderH . fixOrderV . view' (currentTag w0) $ w1 where + view' = if screen (current w0) == screen (current w1) then greedyView else view fixOrderV w | v : vs <- visible w = w{ visible = insertAt (pfxV (visible w0) vs) v vs } | otherwise = w fixOrderH w | h : hs <- hidden w = w{ hidden = insertAt (pfxH (hidden w0) hs) h hs } diff --git a/tests/CycleRecentWS.hs b/tests/CycleRecentWS.hs index 737e8aea..d09f0e52 100644 --- a/tests/CycleRecentWS.hs +++ b/tests/CycleRecentWS.hs @@ -6,7 +6,7 @@ import Test.Hspec.QuickCheck import Test.QuickCheck import XMonad.Actions.CycleRecentWS (unView) -import XMonad.StackSet (view, mapLayout) +import XMonad.StackSet (view, greedyView, mapLayout) import Instances import Utils (tags) @@ -17,7 +17,8 @@ spec = do prop_unView :: T -> Property prop_unView ss = conjoin - [ counterexample (show t) (unView ss (state (view t ss)) === state ss) - | t <- tags ss ] + [ counterexample desc (unView ss (state (v t ss)) === state ss) + | t <- tags ss + , (desc, v) <- [("view " <> show t, view), ("greedyView " <> show t, greedyView)] ] where state = mapLayout succ