focus: support focus_wrapping workspace
Following i3 support: https://github.com/i3/i3/pull/3407
This commit is contained in:
parent
74c0e7921a
commit
3ee3a9ef60
|
@ -409,7 +409,8 @@ enum focus_follows_mouse_mode {
|
||||||
enum focus_wrapping_mode {
|
enum focus_wrapping_mode {
|
||||||
WRAP_NO,
|
WRAP_NO,
|
||||||
WRAP_YES,
|
WRAP_YES,
|
||||||
WRAP_FORCE
|
WRAP_FORCE,
|
||||||
|
WRAP_WORKSPACE
|
||||||
};
|
};
|
||||||
|
|
||||||
enum mouse_warping_mode {
|
enum mouse_warping_mode {
|
||||||
|
|
|
@ -160,7 +160,8 @@ static struct sway_node *node_get_in_direction_tiling(
|
||||||
// Check a different output
|
// Check a different output
|
||||||
struct sway_output *output = container->workspace->output;
|
struct sway_output *output = container->workspace->output;
|
||||||
struct sway_output *new_output = output_get_in_direction(output, dir);
|
struct sway_output *new_output = output_get_in_direction(output, dir);
|
||||||
if (new_output) {
|
if ((config->focus_wrapping != WRAP_WORKSPACE ||
|
||||||
|
container->node.type == N_WORKSPACE) && new_output) {
|
||||||
return get_node_in_output_direction(new_output, dir);
|
return get_node_in_output_direction(new_output, dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,8 @@ struct cmd_results *cmd_focus_wrapping(int argc, char **argv) {
|
||||||
|
|
||||||
if (strcasecmp(argv[0], "force") == 0) {
|
if (strcasecmp(argv[0], "force") == 0) {
|
||||||
config->focus_wrapping = WRAP_FORCE;
|
config->focus_wrapping = WRAP_FORCE;
|
||||||
|
} else if (strcasecmp(argv[0], "workspace") == 0) {
|
||||||
|
config->focus_wrapping = WRAP_WORKSPACE;
|
||||||
} else if (parse_boolean(argv[0], config->focus_wrapping == WRAP_YES)) {
|
} else if (parse_boolean(argv[0], config->focus_wrapping == WRAP_YES)) {
|
||||||
config->focus_wrapping = WRAP_YES;
|
config->focus_wrapping = WRAP_YES;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -551,14 +551,16 @@ The default colors are:
|
||||||
If set to _smart_, the window will become focused only if it is already
|
If set to _smart_, the window will become focused only if it is already
|
||||||
visible, otherwise the urgent state will be set. Default is _smart_.
|
visible, otherwise the urgent state will be set. Default is _smart_.
|
||||||
|
|
||||||
*focus_wrapping* yes|no|force
|
*focus_wrapping* yes|no|force|workspace
|
||||||
This option determines what to do when attempting to focus over the edge
|
This option determines what to do when attempting to focus over the edge
|
||||||
of a container. If set to _no_, the focused container will retain focus,
|
of a container. If set to _no_, the focused container will retain focus,
|
||||||
if there are no other containers in the direction. If set to _yes_, focus
|
if there are no other containers in the direction. If set to _yes_, focus
|
||||||
will be wrapped to the opposite edge of the container, if there are no
|
will be wrapped to the opposite edge of the container, if there are no
|
||||||
other containers in the direction. If set to _force_, focus will be wrapped
|
other containers in the direction. If set to _force_, focus will be wrapped
|
||||||
to the opposite edge of the container, even if there are other containers
|
to the opposite edge of the container, even if there are other containers
|
||||||
in the direction. Default is _yes_.
|
in the direction. If set to _workspace_, focus will wrap like in the _yes_
|
||||||
|
case and additionally wrap when moving outside of workspaces boundaries.
|
||||||
|
Default is _yes_.
|
||||||
|
|
||||||
*font* [pango:]<font>
|
*font* [pango:]<font>
|
||||||
Sets font to use for the title bars. To enable support for pango markup,
|
Sets font to use for the title bars. To enable support for pango markup,
|
||||||
|
|
Loading…
Reference in a new issue