Merge pull request #3327 from orestisf1993/rename-mouse-bug

cmd_rename_workspace: always call con_focus
This commit is contained in:
Ingo Bürk 2018-07-12 06:27:56 +02:00 committed by GitHub
commit dbf4e1b95d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 19 deletions

View File

@ -2021,28 +2021,27 @@ void cmd_rename_workspace(I3_CMD, const char *old_name, const char *new_name) {
}
workspace_move_to_output(workspace, target_output);
bool can_restore_focus = previously_focused != NULL;
/* NB: If previously_focused is a workspace we can't
* work directly with it since it might have been cleaned up by
* workspace_show() already, depending on the
* focus order/number of other workspaces on the output.
* Instead, we loop through the available workspaces and only focus
* previously_focused if we still find it. */
if (previously_focused_content) {
Con *workspace = NULL;
GREP_FIRST(workspace, previously_focused_content, child == previously_focused);
can_restore_focus &= (workspace != NULL);
}
if (can_restore_focus) {
/* Restore the previous focus since con_attach messes with the focus. */
workspace_show(con_get_workspace(previously_focused));
con_activate(previously_focused);
}
break;
}
bool can_restore_focus = previously_focused != NULL;
/* NB: If previously_focused is a workspace we can't work directly with it
* since it might have been cleaned up by workspace_show() already,
* depending on the focus order/number of other workspaces on the output.
* Instead, we loop through the available workspaces and only focus
* previously_focused if we still find it. */
if (previously_focused_content) {
Con *workspace = NULL;
GREP_FIRST(workspace, previously_focused_content, child == previously_focused);
can_restore_focus &= (workspace != NULL);
}
if (can_restore_focus) {
/* Restore the previous focus since con_attach messes with the focus. */
workspace_show(con_get_workspace(previously_focused));
con_focus(previously_focused);
}
cmd_output->needs_tree_render = true;
ysuccess(true);