Fix 'workspace back_and_forth' and workspace_auto_back_and_forth clash

When workspace_auto_back_and_forth is enabled, workspaces get switched
twice with previously mentioned command, which is not the expected
behavior.

Removes one redundant creation of previous workspace.
master
D.B 10 years ago
parent 4b0de51766
commit 132017d242

@ -2563,10 +2563,13 @@ static struct cmd_results *cmd_workspace(int argc, char **argv) {
} else if (strcasecmp(argv[0], "prev_on_output") == 0) { } else if (strcasecmp(argv[0], "prev_on_output") == 0) {
ws = workspace_output_prev(); ws = workspace_output_prev();
} else if (strcasecmp(argv[0], "back_and_forth") == 0) { } else if (strcasecmp(argv[0], "back_and_forth") == 0) {
if (prev_workspace_name) { // if auto_back_and_forth is enabled, workspace_switch will swap
if (!(ws = workspace_by_name(prev_workspace_name))) { // the workspaces. If we created prev_workspace here, workspace_switch
ws = workspace_create(prev_workspace_name); // would put us back on original workspace.
} if (config->auto_back_and_forth) {
ws = swayc_active_workspace();
} else if (prev_workspace_name && !(ws = workspace_by_name(prev_workspace_name))) {
ws = workspace_create(prev_workspace_name);
} }
} else { } else {
if (!(ws = workspace_by_name(argv[0]))) { if (!(ws = workspace_by_name(argv[0]))) {

Loading…
Cancel
Save