Implement focus_wrapping workspace

I had a dilemma about the behaviour here:
1. Prohibit focus leaving the workspace in any case unless if
get_tree_next's initial argument is a workspace. This is what this
commit does (also i3-cycle).
2. Leave the workspace if no warp is possible (eg workspace with single
container or `focus right` with `V[a b c*]`).

Fixes #2180
This commit is contained in:
Orestis Floros
2018-09-15 11:36:48 +03:00
committed by Orestis Floros
parent bbc4c99c72
commit 24a58d2952
6 changed files with 118 additions and 7 deletions

View File

@ -1105,9 +1105,14 @@ If you want the focus to *always* wrap and you are aware of using +focus
parent+ to switch to different containers, you can instead set +focus_wrapping+
to the value +force+.
To restrict focus inside the current workspace set +focus_wrapping+ to the
value +workspace+. You will need to use +focus parent+ until a workspace is
selected to switch to a different workspace using the focus commands (the
+workspace+ command will still work as expected).
*Syntax*:
---------------------------
focus_wrapping yes|no|force
focus_wrapping yes|no|force|workspace
# Legacy syntax, equivalent to "focus_wrapping force"
force_focus_wrapping yes