mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-24 05:46:21 +00:00
Added command /wins swap
This commit is contained in:
@@ -950,6 +950,12 @@ _ui_prune_wins(void)
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
_ui_swap_wins(int source_win, int target_win)
|
||||
{
|
||||
return wins_swap(source_win, target_win);
|
||||
}
|
||||
|
||||
static win_type_t
|
||||
_ui_current_win_type(void)
|
||||
{
|
||||
@@ -1987,4 +1993,5 @@ ui_init_module(void)
|
||||
ui_create_xmlconsole_win = _ui_create_xmlconsole_win;
|
||||
ui_xmlconsole_exists = _ui_xmlconsole_exists;
|
||||
ui_handle_room_join_error = _ui_handle_room_join_error;
|
||||
ui_swap_wins = _ui_swap_wins;
|
||||
}
|
||||
|
||||
@@ -147,6 +147,7 @@ gboolean (*ui_duck_exists)(void);
|
||||
|
||||
void (*ui_tidy_wins)(void);
|
||||
void (*ui_prune_wins)(void);
|
||||
gboolean (*ui_swap_wins)(int source_win, int target_win);
|
||||
|
||||
void (*ui_auto_away)(void);
|
||||
void (*ui_end_auto_away)(void);
|
||||
|
||||
@@ -386,6 +386,35 @@ wins_lost_connection(void)
|
||||
}
|
||||
}
|
||||
|
||||
gboolean
|
||||
wins_swap(int source_win, int target_win)
|
||||
{
|
||||
ProfWin *source = g_hash_table_lookup(windows, GINT_TO_POINTER(source_win));
|
||||
|
||||
if (source != NULL) {
|
||||
ProfWin *target = g_hash_table_lookup(windows, GINT_TO_POINTER(target_win));
|
||||
|
||||
if (target == NULL) {
|
||||
g_hash_table_steal(windows, GINT_TO_POINTER(source_win));
|
||||
status_bar_inactive(source_win);
|
||||
g_hash_table_insert(windows, GINT_TO_POINTER(target_win), source);
|
||||
if (source->unread > 0) {
|
||||
status_bar_new(target_win);
|
||||
} else {
|
||||
status_bar_active(target_win);
|
||||
}
|
||||
if ((wins_get_current_num() == source_win) || (wins_get_current_num() == target_win)) {
|
||||
ui_switch_win(1);
|
||||
}
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
gboolean
|
||||
wins_tidy(void)
|
||||
{
|
||||
|
||||
@@ -50,5 +50,6 @@ void wins_destroy(void);
|
||||
GList * wins_get_nums(void);
|
||||
gboolean wins_xmlconsole_exists(void);
|
||||
ProfWin * wins_get_xmlconsole(void);
|
||||
gboolean wins_swap(int source_win, int target_win);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user