diff options
author | lbonn <bonnans.l@gmail.com> | 2019-10-16 20:27:19 +0200 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2019-10-17 13:48:52 +0300 |
commit | 3ee3a9ef60c6259720564bbedb0c74d545d2ec53 (patch) | |
tree | 186eb0a0abf72e20fda497f1827c7fa717056d5c /sway/commands | |
parent | 74c0e7921ae13986eb7d79bfa263f7ddb9312440 (diff) |
focus: support focus_wrapping workspace
Following i3 support: https://github.com/i3/i3/pull/3407
Diffstat (limited to 'sway/commands')
-rw-r--r-- | sway/commands/focus.c | 3 | ||||
-rw-r--r-- | sway/commands/focus_wrapping.c | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/sway/commands/focus.c b/sway/commands/focus.c index 8baa616d..93d1effe 100644 --- a/sway/commands/focus.c +++ b/sway/commands/focus.c @@ -160,7 +160,8 @@ static struct sway_node *node_get_in_direction_tiling( // Check a different output struct sway_output *output = container->workspace->output; 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); } diff --git a/sway/commands/focus_wrapping.c b/sway/commands/focus_wrapping.c index 3a74a3ea..d3901cb8 100644 --- a/sway/commands/focus_wrapping.c +++ b/sway/commands/focus_wrapping.c @@ -11,6 +11,8 @@ struct cmd_results *cmd_focus_wrapping(int argc, char **argv) { if (strcasecmp(argv[0], "force") == 0) { 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)) { config->focus_wrapping = WRAP_YES; } else { |