bugfix: fix workspace back_and_forth after displaying a scratchpad window
fixes #868
This commit is contained in:
parent
eb8c21a5b8
commit
81393c93c2
|
@ -340,11 +340,16 @@ static void _workspace_show(Con *workspace) {
|
||||||
/* Remember currently focused workspace for switching back to it later with
|
/* Remember currently focused workspace for switching back to it later with
|
||||||
* the 'workspace back_and_forth' command.
|
* the 'workspace back_and_forth' command.
|
||||||
* NOTE: We have to duplicate the name as the original will be freed when
|
* NOTE: We have to duplicate the name as the original will be freed when
|
||||||
* the corresponding workspace is cleaned up. */
|
* the corresponding workspace is cleaned up.
|
||||||
|
* NOTE: Internal cons such as __i3_scratch (when a scratchpad window is
|
||||||
FREE(previous_workspace_name);
|
* focused) are skipped, see bug #868. */
|
||||||
if (current)
|
if (current && !con_is_internal(current)) {
|
||||||
previous_workspace_name = sstrdup(current->name);
|
FREE(previous_workspace_name);
|
||||||
|
if (current) {
|
||||||
|
previous_workspace_name = sstrdup(current->name);
|
||||||
|
DLOG("Setting previous_workspace_name = %s\n", previous_workspace_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
workspace_reassign_sticky(workspace);
|
workspace_reassign_sticky(workspace);
|
||||||
|
|
||||||
|
|
|
@ -106,6 +106,23 @@ is(focused_ws, '6: baz', 'workspace 6 now focused');
|
||||||
cmd 'workspace number 6';
|
cmd 'workspace number 6';
|
||||||
is(focused_ws, '5: foo', 'workspace 5 focused again');
|
is(focused_ws, '5: foo', 'workspace 5 focused again');
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Place a window in the scratchpad, see if BAF works after showing the
|
||||||
|
# scratchpad window.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
my $scratchwin = open_window;
|
||||||
|
cmd 'move scratchpad';
|
||||||
|
|
||||||
|
# show scratchpad window
|
||||||
|
cmd 'scratchpad show';
|
||||||
|
|
||||||
|
# hide scratchpad window
|
||||||
|
cmd 'scratchpad show';
|
||||||
|
|
||||||
|
cmd 'workspace back_and_forth';
|
||||||
|
is(focused_ws, '6: baz', 'workspace 6 now focused');
|
||||||
|
|
||||||
exit_gracefully($pid);
|
exit_gracefully($pid);
|
||||||
|
|
||||||
done_testing;
|
done_testing;
|
||||||
|
|
Loading…
Reference in New Issue