aboutsummaryrefslogtreecommitdiffstats
path: root/sway/commands/move.c
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-10-21 11:26:22 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-10-21 11:26:22 +1000
commitc5a6c37275978ddc8c221ca73ae1a39254dd68f5 (patch)
tree2255d845647357cdbe6fdfcb1c6a40210a69ddb7 /sway/commands/move.c
parentMerge pull request #2901 from ianyfan/swaybar (diff)
downloadsway-c5a6c37275978ddc8c221ca73ae1a39254dd68f5.tar.gz
sway-c5a6c37275978ddc8c221ca73ae1a39254dd68f5.tar.zst
sway-c5a6c37275978ddc8c221ca73ae1a39254dd68f5.zip
Make workspace back_and_forth seat-specific
* When using multiple seats, each seat has its own prev_workspace_name for the purpose of workspace back_and_forth. * Removes prev_workspace_name global variable. * Removes unused next_name_map function in tree/workspace.c. * Fixes memory leak in seat_destroy (seat was not freed).
Diffstat (limited to 'sway/commands/move.c')
-rw-r--r--sway/commands/move.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sway/commands/move.c b/sway/commands/move.c
index 941b284a..a5b7f661 100644
--- a/sway/commands/move.c
+++ b/sway/commands/move.c
@@ -429,8 +429,8 @@ static struct cmd_results *cmd_move_container(int argc, char **argv) {
429 ws = workspace_by_name(argv[2]); 429 ws = workspace_by_name(argv[2]);
430 } else if (strcasecmp(argv[2], "back_and_forth") == 0) { 430 } else if (strcasecmp(argv[2], "back_and_forth") == 0) {
431 if (!(ws = workspace_by_name(argv[2]))) { 431 if (!(ws = workspace_by_name(argv[2]))) {
432 if (prev_workspace_name) { 432 if (seat->prev_workspace_name) {
433 ws_name = strdup(prev_workspace_name); 433 ws_name = strdup(seat->prev_workspace_name);
434 } else { 434 } else {
435 return cmd_results_new(CMD_FAILURE, "move", 435 return cmd_results_new(CMD_FAILURE, "move",
436 "No workspace was previously active."); 436 "No workspace was previously active.");
@@ -455,13 +455,13 @@ static struct cmd_results *cmd_move_container(int argc, char **argv) {
455 } 455 }
456 456
457 if (!no_auto_back_and_forth && config->auto_back_and_forth && 457 if (!no_auto_back_and_forth && config->auto_back_and_forth &&
458 prev_workspace_name) { 458 seat->prev_workspace_name) {
459 // auto back and forth move 459 // auto back and forth move
460 if (old_ws && old_ws->name && 460 if (old_ws && old_ws->name &&
461 strcmp(old_ws->name, ws_name) == 0) { 461 strcmp(old_ws->name, ws_name) == 0) {
462 // if target workspace is the current one 462 // if target workspace is the current one
463 free(ws_name); 463 free(ws_name);
464 ws_name = strdup(prev_workspace_name); 464 ws_name = strdup(seat->prev_workspace_name);
465 ws = workspace_by_name(ws_name); 465 ws = workspace_by_name(ws_name);
466 } 466 }
467 } 467 }