about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/command/commands.c4
-rw-r--r--src/otr/otr.c8
-rw-r--r--src/ui/chatwin.c16
-rw-r--r--src/ui/ui.h2
4 files changed, 14 insertions, 16 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);