diff options
author | James Booth <boothj5@gmail.com> | 2015-04-29 23:08:23 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2015-04-29 23:08:23 +0100 |
commit | 0fece78dfe94df5fc00032b26d13d1607cb8d031 (patch) | |
tree | 3a933ba188024064a232fee47aa7c35e3bdca4b5 /src/command | |
parent | 5d827cafec736050f101a407aa281ddc2bb2c60d (diff) | |
parent | 665c34414d7534016fb8136cffbadd35793dec7b (diff) | |
download | profani-tty-0fece78dfe94df5fc00032b26d13d1607cb8d031.tar.gz |
Merge branch 'master' into pgp
Diffstat (limited to 'src/command')
-rw-r--r-- | src/command/commands.c | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/src/command/commands.c b/src/command/commands.c index e054577b..ada5c114 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -113,7 +113,7 @@ cmd_execute_default(const char * inp) case WIN_CHAT: { ProfChatWin *chatwin = wins_get_current_chat(); - cl_ev_send_msg(chatwin->barejid, inp); + cl_ev_send_msg(chatwin, inp); break; } case WIN_PRIVATE: @@ -1338,24 +1338,23 @@ cmd_msg(gchar **args, struct cmd_help_t help) barejid = usr; } + ProfChatWin *chatwin = wins_get_chat(barejid); + if (!chatwin) { + chatwin = ui_ev_new_chat_win(barejid); + } + ui_ev_focus_win((ProfWin*)chatwin); + if (msg) { - cl_ev_send_msg(barejid, msg); - return TRUE; + cl_ev_send_msg(chatwin, msg); } else { - ProfWin *window = (ProfWin*)wins_get_chat(barejid); - if (window) { - ui_ev_focus_win(window); - } else { - ui_ev_new_chat_win(barejid); - } - #ifdef HAVE_LIBOTR if (otr_is_secure(barejid)) { ui_gone_secure(barejid, otr_is_trusted(barejid)); } #endif - return TRUE; } + + return TRUE; } } @@ -3153,7 +3152,7 @@ cmd_tiny(gchar **args, struct cmd_help_t help) case WIN_CHAT: { ProfChatWin *chatwin = wins_get_current_chat(); - cl_ev_send_msg(chatwin->barejid, tiny); + cl_ev_send_msg(chatwin, tiny); break; } case WIN_PRIVATE: @@ -4236,12 +4235,11 @@ cmd_otr(gchar **args, struct cmd_help_t help) barejid = contact; } - ProfWin *window = (ProfWin*)wins_get_chat(barejid); - if (window) { - ui_ev_focus_win(window); - } else { - ui_ev_new_chat_win(barejid); + ProfChatWin *chatwin = wins_get_chat(barejid); + if (!chatwin) { + chatwin = ui_ev_new_chat_win(barejid); } + 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."); |