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
|
||||
* the 'workspace back_and_forth' command.
|
||||
* 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
|
||||
* focused) are skipped, see bug #868. */
|
||||
if (current && !con_is_internal(current)) {
|
||||
FREE(previous_workspace_name);
|
||||
if (current)
|
||||
if (current) {
|
||||
previous_workspace_name = sstrdup(current->name);
|
||||
DLOG("Setting previous_workspace_name = %s\n", previous_workspace_name);
|
||||
}
|
||||
}
|
||||
|
||||
workspace_reassign_sticky(workspace);
|
||||
|
||||
|
|
|
@ -106,6 +106,23 @@ is(focused_ws, '6: baz', 'workspace 6 now focused');
|
|||
cmd 'workspace number 6';
|
||||
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);
|
||||
|
||||
done_testing;
|
||||
|
|
Loading…
Reference in New Issue