diff options
author | James Booth <boothj5@gmail.com> | 2015-04-30 21:24:06 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2015-04-30 21:24:06 +0100 |
commit | 7730674f457a490c89d9a607988889296c2f2d27 (patch) | |
tree | c132e7a15e6aac13d4d3a15546a2042c037e15ca /src | |
parent | d5188a160e23235e84dcc4e4c8ee584dba4fab77 (diff) | |
parent | 0a6b76d6d36455a118d95b2815f1ab5f16707bff (diff) | |
download | profani-tty-7730674f457a490c89d9a607988889296c2f2d27.tar.gz |
Merge branch 'master' into pgp
Diffstat (limited to 'src')
-rw-r--r-- | src/command/commands.c | 22 | ||||
-rw-r--r-- | src/ui/core.c | 16 | ||||
-rw-r--r-- | src/ui/ui.h | 2 |
3 files changed, 13 insertions, 27 deletions
diff --git a/src/command/commands.c b/src/command/commands.c index ada5c114..150ee364 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -1342,7 +1342,9 @@ cmd_msg(gchar **args, struct cmd_help_t help) if (!chatwin) { chatwin = ui_ev_new_chat_win(barejid); } - ui_ev_focus_win((ProfWin*)chatwin); + if (!wins_is_current((ProfWin*)chatwin)) { + ui_ev_focus_win((ProfWin*)chatwin); + } if (msg) { cl_ev_send_msg(chatwin, msg); @@ -3191,7 +3193,7 @@ cmd_close(gchar **args, struct cmd_help_t help) int count = 0; if (args[0] == NULL) { - index = ui_current_win_index(); + index = wins_get_current_num(); } else if (strcmp(args[0], "all") == 0) { count = ui_close_all_wins(); if (count == 0) { @@ -3226,19 +3228,15 @@ cmd_close(gchar **args, struct cmd_help_t help) return TRUE; } - if (!ui_win_exists(index)) { + ProfWin *window = wins_get_by_num(index); + if (!window) { cons_show("Window is not open."); return TRUE; } // check for unsaved form if (ui_win_has_unsaved_form(index)) { - ProfWin *window = wins_get_current(); - if (wins_is_current(window)) { - ui_current_print_line("You have unsaved changes, use /form submit or /form cancel"); - } else { - cons_show("Cannot close form window with unsaved changes, use /form submit or /form cancel"); - } + ui_current_print_line("You have unsaved changes, use /form submit or /form cancel"); return TRUE; } @@ -3259,7 +3257,7 @@ cmd_leave(gchar **args, struct cmd_help_t help) { jabber_conn_status_t conn_status = jabber_get_connection_status(); win_type_t win_type = ui_current_win_type(); - int index = ui_current_win_index(); + int index = wins_get_current_num(); if (win_type != WIN_MUC) { cons_show("You can only use the /leave command in a chat room."); @@ -4239,7 +4237,9 @@ cmd_otr(gchar **args, struct cmd_help_t help) if (!chatwin) { chatwin = ui_ev_new_chat_win(barejid); } - ui_ev_focus_win((ProfWin*)chatwin); + if (!wins_is_current((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/ui/core.c b/src/ui/core.c index b985e52b..59144223 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -282,13 +282,6 @@ ui_load_colours(void) } gboolean -ui_win_exists(int index) -{ - ProfWin *window = wins_get_by_num(index); - return (window != NULL); -} - -gboolean ui_xmlconsole_exists(void) { ProfXMLWin *xmlwin = wins_get_xmlconsole(); @@ -882,7 +875,8 @@ ui_switch_win(ProfWin *win) gboolean ui_switch_win_num(const int i) { - if (ui_win_exists(i)) { + ProfWin *window = wins_get_by_num(i); + if (window) { ProfWin *old_current = wins_get_current(); if (old_current->type == WIN_MUC_CONFIG) { ProfMucConfWin *confwin = (ProfMucConfWin*)old_current; @@ -1257,12 +1251,6 @@ ui_current_win_is_otr(void) } } -int -ui_current_win_index(void) -{ - return wins_get_current_num(); -} - win_type_t ui_win_type(int index) { diff --git a/src/ui/ui.h b/src/ui/ui.h index e98a105e..e42505bc 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -98,7 +98,6 @@ int ui_close_read_wins(void); // current window actions void ui_clear_current(void); win_type_t ui_current_win_type(void); -int ui_current_win_index(void); gboolean ui_current_win_is_otr(void); ProfChatWin *ui_get_current_chat(void); @@ -110,7 +109,6 @@ void ui_win_error_line(ProfWin *window, const char * const msg); win_type_t ui_win_type(int index); void ui_close_win(int index); -gboolean ui_win_exists(int index); int ui_win_unread(int index); char * ui_ask_password(void); |