diff options
author | James Booth <boothj5@gmail.com> | 2018-03-09 22:59:38 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2018-03-09 22:59:38 +0000 |
commit | e96af8537c8a0e3e53904be7e035f51f155e2493 (patch) | |
tree | 4d144777a9d9751e1c8646ecf4177e7ec5ac2812 /src/command/cmd_funcs.c | |
parent | 136b975b6cb1df03ff55faa50dffd5f0da75d0c0 (diff) | |
download | profani-tty-e96af8537c8a0e3e53904be7e035f51f155e2493.tar.gz |
Only allow swapping active windows
Diffstat (limited to 'src/command/cmd_funcs.c')
-rw-r--r-- | src/command/cmd_funcs.c | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index 3fec5e16..ae7f2abc 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -1269,21 +1269,34 @@ cmd_wins_swap(ProfWin *window, const char *const command, gchar **args) int source_win = atoi(args[1]); int target_win = atoi(args[2]); + if ((source_win == 1) || (target_win == 1)) { cons_show("Cannot move console window."); - } else if (source_win == 10 || target_win == 10) { + return TRUE; + } + + if (source_win == 10 || target_win == 10) { cons_show("Window 10 does not exist"); - } else if (source_win != target_win) { - gboolean swapped = wins_swap(source_win, target_win); - if (swapped) { - cons_show("Swapped windows %d <-> %d", source_win, target_win); - } else { - cons_show("Window %d does not exist", source_win); - } - } else { + return TRUE; + } + + if (source_win == target_win) { cons_show("Same source and target window supplied."); + return TRUE; + } + + if (wins_get_by_num(source_win) == NULL) { + cons_show("Window %d does not exist", source_win); + return TRUE; + } + + if (wins_get_by_num(target_win) == NULL) { + cons_show("Window %d does not exist", target_win); + return TRUE; } + wins_swap(source_win, target_win); + cons_show("Swapped windows %d <-> %d", source_win, target_win); return TRUE; } |