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 source_win = atoi(args[1]);
|
||||||
int target_win = atoi(args[2]);
|
int target_win = atoi(args[2]);
|
||||||
|
|
||||||
if ((source_win == 1) || (target_win == 1)) {
|
if ((source_win == 1) || (target_win == 1)) {
|
||||||
cons_show("Cannot move console window.");
|
cons_show("Cannot move console window.");
|
||||||
} else if (source_win == 10 || target_win == 10) {
|
return TRUE;
|
||||||
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.");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -844,7 +844,7 @@ wins_lost_connection(void)
|
|||||||
g_list_free(values);
|
g_list_free(values);
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
void
|
||||||
wins_swap(int source_win, int target_win)
|
wins_swap(int source_win, int target_win)
|
||||||
{
|
{
|
||||||
ProfWin *source = g_hash_table_lookup(windows, GINT_TO_POINTER(source_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);
|
wins_set_current_by_num(target_win);
|
||||||
ui_focus_win(console);
|
ui_focus_win(console);
|
||||||
}
|
}
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
// target window occupied
|
// target window occupied
|
||||||
} else {
|
} 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)) {
|
if ((wins_get_current_num() == source_win) || (wins_get_current_num() == target_win)) {
|
||||||
ui_focus_win(console);
|
ui_focus_win(console);
|
||||||
}
|
}
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
return FALSE;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ gboolean wins_tidy(void);
|
|||||||
GSList* wins_create_summary(gboolean unread);
|
GSList* wins_create_summary(gboolean unread);
|
||||||
void wins_destroy(void);
|
void wins_destroy(void);
|
||||||
GList* wins_get_nums(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_hide_subwin(ProfWin *window);
|
||||||
void wins_show_subwin(ProfWin *window);
|
void wins_show_subwin(ProfWin *window);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user