mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Only allow swapping active windows
This commit is contained in:
parent
136b975b6c
commit
e96af8537c
@ -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) {
|
||||
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 {
|
||||
cons_show("Same source and target window supplied.");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (source_win == 10 || target_win == 10) {
|
||||
cons_show("Window 10 does not exist");
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -844,7 +844,7 @@ wins_lost_connection(void)
|
||||
g_list_free(values);
|
||||
}
|
||||
|
||||
gboolean
|
||||
void
|
||||
wins_swap(int source_win, int target_win)
|
||||
{
|
||||
ProfWin *source = g_hash_table_lookup(windows, GINT_TO_POINTER(source_win));
|
||||
@ -869,7 +869,6 @@ wins_swap(int source_win, int target_win)
|
||||
wins_set_current_by_num(target_win);
|
||||
ui_focus_win(console);
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
// target window occupied
|
||||
} else {
|
||||
@ -894,10 +893,7 @@ wins_swap(int source_win, int target_win)
|
||||
if ((wins_get_current_num() == source_win) || (wins_get_current_num() == target_win)) {
|
||||
ui_focus_win(console);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -87,7 +87,7 @@ gboolean wins_tidy(void);
|
||||
GSList* wins_create_summary(gboolean unread);
|
||||
void wins_destroy(void);
|
||||
GList* wins_get_nums(void);
|
||||
gboolean wins_swap(int source_win, int target_win);
|
||||
void wins_swap(int source_win, int target_win);
|
||||
void wins_hide_subwin(ProfWin *window);
|
||||
void wins_show_subwin(ProfWin *window);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user