aboutsummaryrefslogtreecommitdiffstats
path: root/sway/commands/workspace.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/commands/workspace.c')
-rw-r--r--sway/commands/workspace.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/sway/commands/workspace.c b/sway/commands/workspace.c
index c253c75d..67db08ff 100644
--- a/sway/commands/workspace.c
+++ b/sway/commands/workspace.c
@@ -209,16 +209,17 @@ struct cmd_results *cmd_workspace(int argc, char **argv) {
209 ws = workspace_create(NULL, name); 209 ws = workspace_create(NULL, name);
210 free(name); 210 free(name);
211 } 211 }
212 if (ws && auto_back_and_forth) {
213 ws = workspace_auto_back_and_forth(ws);
214 }
212 } else if (strcasecmp(argv[0], "next") == 0 || 215 } else if (strcasecmp(argv[0], "next") == 0 ||
213 strcasecmp(argv[0], "prev") == 0 || 216 strcasecmp(argv[0], "prev") == 0 ||
214 strcasecmp(argv[0], "current") == 0) { 217 strcasecmp(argv[0], "current") == 0) {
215 ws = workspace_by_name(argv[0]); 218 ws = workspace_by_name(argv[0]);
216 } else if (strcasecmp(argv[0], "next_on_output") == 0) { 219 } else if (strcasecmp(argv[0], "next_on_output") == 0) {
217 ws = workspace_output_next(current, create); 220 ws = workspace_output_next(current, create);
218 auto_back_and_forth = false;
219 } else if (strcasecmp(argv[0], "prev_on_output") == 0) { 221 } else if (strcasecmp(argv[0], "prev_on_output") == 0) {
220 ws = workspace_output_prev(current, create); 222 ws = workspace_output_prev(current, create);
221 auto_back_and_forth = false;
222 } else if (strcasecmp(argv[0], "back_and_forth") == 0) { 223 } else if (strcasecmp(argv[0], "back_and_forth") == 0) {
223 if (!seat->prev_workspace_name) { 224 if (!seat->prev_workspace_name) {
224 return cmd_results_new(CMD_INVALID, 225 return cmd_results_new(CMD_INVALID,
@@ -227,20 +228,19 @@ struct cmd_results *cmd_workspace(int argc, char **argv) {
227 if (!(ws = workspace_by_name(argv[0]))) { 228 if (!(ws = workspace_by_name(argv[0]))) {
228 ws = workspace_create(NULL, seat->prev_workspace_name); 229 ws = workspace_create(NULL, seat->prev_workspace_name);
229 } 230 }
230 auto_back_and_forth = false;
231 } else { 231 } else {
232 char *name = join_args(argv, argc); 232 char *name = join_args(argv, argc);
233 if (!(ws = workspace_by_name(name))) { 233 if (!(ws = workspace_by_name(name))) {
234 ws = workspace_create(NULL, name); 234 ws = workspace_create(NULL, name);
235 } 235 }
236 free(name); 236 free(name);
237 if (ws && auto_back_and_forth) {
238 ws = workspace_auto_back_and_forth(ws);
239 }
237 } 240 }
238 if (!ws) { 241 if (!ws) {
239 return cmd_results_new(CMD_FAILURE, "No workspace to switch to"); 242 return cmd_results_new(CMD_FAILURE, "No workspace to switch to");
240 } 243 }
241 if(auto_back_and_forth){
242 ws = workspace_auto_back_and_forth(ws);
243 }
244 workspace_switch(ws); 244 workspace_switch(ws);
245 seat_consider_warp_to_focus(seat); 245 seat_consider_warp_to_focus(seat);
246 } 246 }