Don't refocus a workspace cleaned up by workspace_show
during rename
When moving a workspace to the current output by way of a rename, if the current workspace is empty, it will be removed by `workspace_show`. Attempting to restore focus to this removed workspace causes a crash. Follow the pattern in workspace.c:996 to only restore the original focus if the original workspace still exists. Add a test to ensure that the renamed workspace moves to its appropriate output and that a crash does not occur. Fixes #3228
This commit is contained in:
@ -94,4 +94,16 @@ cmd 'rename workspace to 5';
|
||||
is(get_output_for_workspace('5'), 'fake-0',
|
||||
'Renaming the workspace to a workspace assigned to a directional output should not move the workspace');
|
||||
|
||||
##########################################################################
|
||||
# Renaming a workspace, so that it becomes assigned to the focused
|
||||
# output's workspace (and the focused output is empty) should
|
||||
# result in the original workspace replacing the originally
|
||||
# focused workspace.
|
||||
##########################################################################
|
||||
|
||||
cmd 'workspace baz';
|
||||
cmd 'rename workspace 5 to 2';
|
||||
is(get_output_for_workspace('2'), 'fake-1',
|
||||
'Renaming a workspace so that it moves to the focused output which contains only an empty workspace should replace the empty workspace');
|
||||
|
||||
done_testing;
|
||||
|
Reference in New Issue
Block a user