Platon Pronko 66d334f4cd X.A.WindowNavigation: better handling of floating windows and Full layout
Previous version most of the time just got "stuck" on floating windows,
switching back and forth between floating window and tiled window underneath.
This was because "magic point" was left in the same position and thus next
navigation commands selected the same windows over and over again.
Now the "magic point" is moved around such that it doesn't overlap with the previously selected window,
and there are more complicated rules to make navigation between floating and tiled windows more natural.

The original behavior of navigating between tiled windows is preserved almost precisely.

Previous version also prevented switching windows using focusUp/focusDown
when in Full layout. Now there's a special case that handles such situations.
2024-07-01 19:44:56 +04:00

58 lines
2.6 KiB
Haskell

module Main where
import Test.Hspec
import Test.Hspec.QuickCheck
import qualified ExtensibleConf
import qualified ManageDocks
import qualified NoBorders
import qualified RotateSome
import qualified Selective
import qualified SwapWorkspaces
import qualified XPrompt
import qualified CycleRecentWS
import qualified OrgMode
import qualified GridSelect
import qualified EZConfig
import qualified WindowNavigation
main :: IO ()
main = hspec $ do
context "ManageDocks" $ do
prop "prop_r2c_c2r" ManageDocks.prop_r2c_c2r
prop "prop_c2r_r2c" ManageDocks.prop_c2r_r2c
context "Selective" $ do
prop "prop_select_length" Selective.prop_select_length
prop "prop_update_idem" Selective.prop_update_idem
prop "prop_select_master" Selective.prop_select_master
prop "prop_select_focus" Selective.prop_select_focus
prop "prop_select_increasing" Selective.prop_select_increasing
prop "prop_select_two_consec" Selective.prop_select_two_consec
prop "prop_update_nm" Selective.prop_update_nm
prop "prop_update_start" Selective.prop_update_start
prop "prop_update_nr" Selective.prop_update_nr
prop "prop_update_focus_up" Selective.prop_update_focus_up
prop "prop_update_focus_down" Selective.prop_update_focus_down
context "RotateSome" $ do
prop "prop_rotate_some_length" RotateSome.prop_rotate_some_length
prop "prop_rotate_some_cycle" RotateSome.prop_rotate_some_cycle
prop "prop_rotate_some_anchors" RotateSome.prop_rotate_some_anchors
prop "prop_rotate_some_rotate" RotateSome.prop_rotate_some_rotate
prop "prop_rotate_some_focus" RotateSome.prop_rotate_some_focus
context "SwapWorkspaces" $ do
prop "prop_double_swap" SwapWorkspaces.prop_double_swap
prop "prop_invalid_swap" SwapWorkspaces.prop_invalid_swap
prop "prop_swap_only_two" SwapWorkspaces.prop_swap_only_two
prop "prop_swap_with_current" SwapWorkspaces.prop_swap_with_current
context "XPrompt" $ do
prop "prop_split" XPrompt.prop_split
prop "prop_spliInSubListsAt" XPrompt.prop_spliInSubListsAt
prop "prop_skipGetLastWord" XPrompt.prop_skipGetLastWord
context "NoBorders" NoBorders.spec
context "ExtensibleConf" ExtensibleConf.spec
context "CycleRecentWS" CycleRecentWS.spec
context "OrgMode" OrgMode.spec
context "GridSelect" GridSelect.spec
context "EZConfig" EZConfig.spec
context "WindowNavigation" WindowNavigation.spec