From 4fb0b4b0da41525a8c9d70937fcc538aae2877cb Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 26 Oct 2015 23:04:45 +0000 Subject: [PATCH] ui_gone_secure takes ProfChatWin --- src/command/commands.c | 4 ++-- src/otr/otr.c | 8 +++++++- src/ui/chatwin.c | 16 ++++------------ src/ui/ui.h | 2 +- tests/unittests/ui/stub_ui.c | 2 +- 5 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/command/commands.c b/src/command/commands.c index 6c5fa3ed..bab32c33 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -1532,7 +1532,7 @@ cmd_msg(ProfWin *window, const char *const command, gchar **args) } else { #ifdef HAVE_LIBOTR if (otr_is_secure(barejid)) { - ui_gone_secure(barejid, otr_is_trusted(barejid)); + ui_gone_secure(chatwin, otr_is_trusted(barejid)); } #endif } @@ -4893,7 +4893,7 @@ cmd_otr(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ui_gone_secure(barejid, otr_is_trusted(barejid)); + ui_gone_secure(chatwin, otr_is_trusted(barejid)); return TRUE; // no recipient, use current chat diff --git a/src/otr/otr.c b/src/otr/otr.c index 9ff4a503..6b9dd34d 100644 --- a/src/otr/otr.c +++ b/src/otr/otr.c @@ -42,6 +42,7 @@ #include "otr/otrlib.h" #include "log.h" #include "roster_list.h" +#include "window_list.h" #include "contact.h" #include "ui/ui.h" #include "config/preferences.h" @@ -143,7 +144,12 @@ cb_write_fingerprints(void *opdata) static void cb_gone_secure(void *opdata, ConnContext *context) { - ui_gone_secure(context->username, otr_is_trusted(context->username)); + ProfChatWin *chatwin = wins_get_chat(context->username); + if (!chatwin) { + chatwin = (ProfChatWin*) wins_new_chat(context->username); + } + + ui_gone_secure(chatwin, otr_is_trusted(context->username)); } char* diff --git a/src/ui/chatwin.c b/src/ui/chatwin.c index 1f25d642..07159760 100644 --- a/src/ui/chatwin.c +++ b/src/ui/chatwin.c @@ -54,20 +54,12 @@ ui_message_receipt(ProfChatWin *chatwin, const char *const id) } void -ui_gone_secure(const char *const barejid, gboolean trusted) +ui_gone_secure(ProfChatWin *chatwin, gboolean trusted) { - ProfWin *window = NULL; - - ProfChatWin *chatwin = wins_get_chat(barejid); - if (chatwin) { - window = (ProfWin*)chatwin; - } else { - window = wins_new_chat(barejid); - chatwin = (ProfChatWin*)window; - } - chatwin->is_otr = TRUE; chatwin->otr_is_trusted = trusted; + + ProfWin *window = (ProfWin*) chatwin; if (trusted) { win_print(window, '!', 0, NULL, 0, THEME_OTR_STARTED_TRUSTED, "", "OTR session started (trusted)."); } else { @@ -84,7 +76,7 @@ ui_gone_secure(const char *const barejid, gboolean trusted) if (ui_index == 10) { ui_index = 0; } - cons_show("%s started an OTR session (%d).", barejid, ui_index); + cons_show("%s started an OTR session (%d).", chatwin->barejid, ui_index); cons_alert(); } } diff --git a/src/ui/ui.h b/src/ui/ui.h index c4d8d8cb..693cda39 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -62,7 +62,7 @@ GSList* ui_get_chat_recipients(void); void ui_switch_win(ProfWin *window); void ui_sigwinch_handler(int sig); -void ui_gone_secure(const char *const barejid, gboolean trusted); +void ui_gone_secure(ProfChatWin *chatwin, gboolean trusted); void ui_gone_insecure(const char *const barejid); void ui_trust(const char *const barejid); void ui_untrust(const char *const barejid); diff --git a/tests/unittests/ui/stub_ui.c b/tests/unittests/ui/stub_ui.c index 8c648551..3b196f46 100644 --- a/tests/unittests/ui/stub_ui.c +++ b/tests/unittests/ui/stub_ui.c @@ -66,7 +66,7 @@ GSList* ui_get_chat_recipients(void) void ui_switch_win(ProfWin *win) {} -void ui_gone_secure(const char * const barejid, gboolean trusted) {} +void ui_gone_secure(ProfChatWin *chatwin, gboolean trusted) {} void ui_gone_insecure(const char * const barejid) {} void ui_trust(const char * const barejid) {} void ui_untrust(const char * const barejid) {}