cmd_focus_sibling: Fix crash on workspace level

Fixes #3997
This commit is contained in:
Orestis Floros
2020-04-09 11:29:14 +02:00
parent 016d4a3f45
commit 4b4f1f604f
2 changed files with 22 additions and 1 deletions

View File

@ -1299,7 +1299,16 @@ void cmd_focus_sibling(I3_CMD, const char *direction_str) {
}
Con *next = get_tree_next_sibling(current->con, direction);
if (next) {
con_activate(next);
if (next->type == CT_WORKSPACE) {
/* On the workspace level, we need to make sure that the
* workspace change happens properly. However, workspace_show
* descends focus so we also have to put focus on the workspace
* itself to maintain consistency. See #3997. */
workspace_show(next);
con_focus(next);
} else {
con_activate(next);
}
}
}