diff options
-rw-r--r-- | src/command/commands.c | 12 | ||||
-rw-r--r-- | src/event/ui_events.c | 5 | ||||
-rw-r--r-- | src/ui/core.c | 77 | ||||
-rw-r--r-- | src/ui/inputwin.c | 14 | ||||
-rw-r--r-- | src/ui/ui.h | 2 | ||||
-rw-r--r-- | src/ui/windows.c | 7 | ||||
-rw-r--r-- | tests/ui/stub_ui.c | 3 |
7 files changed, 30 insertions, 90 deletions
diff --git a/src/command/commands.c b/src/command/commands.c index 51c6ceb4..f3a247e8 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -738,9 +738,7 @@ cmd_win(gchar **args, struct cmd_help_t help) if (!window) { cons_show("Window %d does not exist.", num); } else { - if (!wins_is_current(window)) { - ui_ev_focus_win(window); - } + ui_ev_focus_win(window); } return TRUE; @@ -1348,9 +1346,7 @@ cmd_msg(gchar **args, struct cmd_help_t help) if (!chatwin) { chatwin = ui_ev_new_chat_win(barejid); } - if (!wins_is_current((ProfWin*)chatwin)) { - ui_ev_focus_win((ProfWin*)chatwin); - } + ui_ev_focus_win((ProfWin*)chatwin); if (msg) { cl_ev_send_msg(chatwin, msg); @@ -4241,9 +4237,7 @@ cmd_otr(gchar **args, struct cmd_help_t help) if (!chatwin) { chatwin = ui_ev_new_chat_win(barejid); } - if (!wins_is_current((ProfWin*)chatwin)) { - ui_ev_focus_win((ProfWin*)chatwin); - } + ui_ev_focus_win((ProfWin*)chatwin); if (ui_current_win_is_otr()) { ui_current_print_formatted_line('!', 0, "You are already in an OTR session."); diff --git a/src/event/ui_events.c b/src/event/ui_events.c index 2ad7562d..bebffc07 100644 --- a/src/event/ui_events.c +++ b/src/event/ui_events.c @@ -33,11 +33,14 @@ */ #include "ui/ui.h" +#include "ui/windows.h" void ui_ev_focus_win(ProfWin *win) { - ui_switch_win(win); + if (!wins_is_current(win)) { + ui_switch_win(win); + } } ProfChatWin* diff --git a/src/ui/core.c b/src/ui/core.c index 22cf1168..946e3eaf 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -74,6 +74,7 @@ #include "ui/window.h" #include "ui/windows.h" #include "xmpp/xmpp.h" +#include "event/ui_events.h" static char *win_title; @@ -894,64 +895,6 @@ ui_switch_win(ProfWin *window) } void -ui_previous_win(void) -{ - ProfWin *old_current = wins_get_current(); - if (old_current->type == WIN_MUC_CONFIG) { - ProfMucConfWin *confwin = (ProfMucConfWin*)old_current; - cmd_autocomplete_remove_form_fields(confwin->form); - } - - ProfWin *new_current = wins_get_previous(); - if (new_current->type == WIN_MUC_CONFIG) { - ProfMucConfWin *confwin = (ProfMucConfWin*)new_current; - cmd_autocomplete_add_form_fields(confwin->form); - } - - int i = wins_get_num(new_current); - wins_set_current_by_num(i); - - if (i == 1) { - title_bar_console(); - status_bar_current(1); - status_bar_active(1); - } else { - title_bar_switch(); - status_bar_current(i); - status_bar_active(i); - } -} - -void -ui_next_win(void) -{ - ProfWin *old_current = wins_get_current(); - if (old_current->type == WIN_MUC_CONFIG) { - ProfMucConfWin *confwin = (ProfMucConfWin*)old_current; - cmd_autocomplete_remove_form_fields(confwin->form); - } - - ProfWin *new_current = wins_get_next(); - if (new_current->type == WIN_MUC_CONFIG) { - ProfMucConfWin *confwin = (ProfMucConfWin*)new_current; - cmd_autocomplete_add_form_fields(confwin->form); - } - - int i = wins_get_num(new_current); - wins_set_current_by_num(i); - - if (i == 1) { - title_bar_console(); - status_bar_current(1); - status_bar_active(1); - } else { - title_bar_switch(); - status_bar_current(i); - status_bar_active(i); - } -} - -void ui_gone_secure(const char * const barejid, gboolean trusted) { ProfWin *window = NULL; @@ -1348,14 +1291,14 @@ ui_new_private_win(const char * const fulljid) if (!window) { window = wins_new_private(fulljid); } - ui_switch_win(window); + ui_ev_focus_win(window); } void ui_create_xmlconsole_win(void) { ProfWin *window = wins_new_xmlconsole(); - ui_switch_win(window); + ui_ev_focus_win(window); } void @@ -1363,7 +1306,7 @@ ui_open_xmlconsole_win(void) { ProfXMLWin *xmlwin = wins_get_xmlconsole(); if (xmlwin) { - ui_switch_win((ProfWin*)xmlwin); + ui_ev_focus_win((ProfWin*)xmlwin); } } @@ -1435,7 +1378,7 @@ ui_outgoing_private_msg(const char * const fulljid, const char * const message) } win_print(window, '-', NULL, 0, THEME_TEXT_ME, "me", message); - ui_switch_win(window); + ui_ev_focus_win(window); } void @@ -1462,7 +1405,7 @@ ui_room_join(const char * const roomjid, gboolean focus) if (focus) { - ui_switch_win(window); + ui_ev_focus_win(window); } else { int num = wins_get_num(window); status_bar_active(num); @@ -1476,7 +1419,7 @@ void ui_switch_to_room(const char * const roomjid) { ProfWin *window = (ProfWin*)wins_get_muc(roomjid); - ui_switch_win(window); + ui_ev_focus_win(window); } void @@ -2648,7 +2591,7 @@ ui_handle_room_configuration(const char * const roomjid, DataForm *form) ProfMucConfWin *confwin = (ProfMucConfWin*)window; assert(confwin->memcheck == PROFCONFWIN_MEMCHECK); - ui_switch_win(window); + ui_ev_focus_win(window); ui_show_form(confwin); win_print(window, '-', NULL, 0, 0, "", ""); @@ -2703,11 +2646,11 @@ ui_handle_room_config_submit_result(const char * const roomjid) } if (muc_window) { - ui_switch_win((ProfWin*)muc_window); + ui_ev_focus_win((ProfWin*)muc_window); win_print(muc_window, '!', NULL, 0, THEME_ROOMINFO, "", "Room configuration successful"); } else { ProfWin *console = wins_get_console(); - ui_switch_win(console); + ui_ev_focus_win(console); cons_show("Room configuration successful: %s", roomjid); } } else { diff --git a/src/ui/inputwin.c b/src/ui/inputwin.c index 6cfbde47..caea8ea9 100644 --- a/src/ui/inputwin.c +++ b/src/ui/inputwin.c @@ -455,9 +455,7 @@ _go_to_win(int i) { ProfWin *window = wins_get_by_num(i); if (window) { - if (!wins_is_current(window)) { - ui_ev_focus_win(window); - } + ui_ev_focus_win(window); } } @@ -534,14 +532,20 @@ _inp_rl_win0_handler(int count, int key) static int _inp_rl_altleft_handler(int count, int key) { - ui_previous_win(); + ProfWin *window = wins_get_previous(); + if (window) { + ui_ev_focus_win(window); + } return 0; } static int _inp_rl_altright_handler(int count, int key) { - ui_next_win(); + ProfWin *window = wins_get_next(); + if (window) { + ui_ev_focus_win(window); + } return 0; } diff --git a/src/ui/ui.h b/src/ui/ui.h index 529e0f92..6d85c9e8 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -60,8 +60,6 @@ void ui_redraw(void); void ui_resize(void); GSList* ui_get_chat_recipients(void); void ui_switch_win(ProfWin *window); -void ui_next_win(void); -void ui_previous_win(void); void ui_sigwinch_handler(int sig); void ui_gone_secure(const char * const barejid, gboolean trusted); diff --git a/src/ui/windows.c b/src/ui/windows.c index 4cc0fef7..7a86403b 100644 --- a/src/ui/windows.c +++ b/src/ui/windows.c @@ -53,6 +53,7 @@ #include "ui/statusbar.h" #include "ui/window.h" #include "ui/windows.h" +#include "event/ui_events.h" static GHashTable *windows; static int current; @@ -661,7 +662,7 @@ wins_swap(int source_win, int target_win) } if (wins_get_current_num() == source_win) { wins_set_current_by_num(target_win); - ui_switch_win(console); + ui_ev_focus_win(console); } return TRUE; @@ -682,7 +683,7 @@ wins_swap(int source_win, int target_win) status_bar_active(source_win); } if ((wins_get_current_num() == source_win) || (wins_get_current_num() == target_win)) { - ui_switch_win(console); + ui_ev_focus_win(console); } return TRUE; } @@ -742,7 +743,7 @@ wins_tidy(void) windows = new_windows; current = 1; ProfWin *console = wins_get_console(); - ui_switch_win(console); + ui_ev_focus_win(console); g_list_free(keys); return TRUE; } else { diff --git a/tests/ui/stub_ui.c b/tests/ui/stub_ui.c index 1f812781..cee81872 100644 --- a/tests/ui/stub_ui.c +++ b/tests/ui/stub_ui.c @@ -66,9 +66,6 @@ GSList* ui_get_chat_recipients(void) void ui_switch_win(ProfWin *win) {} -void ui_next_win(void) {} -void ui_previous_win(void) {} - void ui_gone_secure(const char * const barejid, gboolean trusted) {} void ui_gone_insecure(const char * const barejid) {} void ui_trust(const char * const barejid) {} |