about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/event/server_events.c24
-rw-r--r--src/ui/privwin.c13
-rw-r--r--src/ui/ui.h2
3 files changed, 24 insertions, 15 deletions
diff --git a/src/event/server_events.c b/src/event/server_events.c
index a56a54b0..baedd154 100644
--- a/src/event/server_events.c
+++ b/src/event/server_events.c
@@ -184,7 +184,23 @@ sv_ev_room_message(const char *const room_jid, const char *const nick,
 void
 sv_ev_incoming_private_message(const char *const fulljid, char *message)
 {
-    ui_incoming_private_msg(fulljid, message, NULL);
+    ProfPrivateWin *privatewin = wins_get_private(fulljid);
+    if (privatewin == NULL) {
+        ProfWin *window = wins_new_private(fulljid);
+        privatewin = (ProfPrivateWin*)window;
+    }
+    ui_incoming_private_msg(privatewin, message, NULL);
+}
+
+void
+sv_ev_delayed_private_message(const char *const fulljid, char *message, GDateTime *timestamp)
+{
+    ProfPrivateWin *privatewin = wins_get_private(fulljid);
+    if (privatewin == NULL) {
+        ProfWin *window = wins_new_private(fulljid);
+        privatewin = (ProfPrivateWin*)window;
+    }
+    ui_incoming_private_msg(privatewin, message, timestamp);
 }
 
 void
@@ -320,12 +336,6 @@ sv_ev_incoming_message(char *barejid, char *resource, char *message, char *pgp_m
 }
 
 void
-sv_ev_delayed_private_message(const char *const fulljid, char *message, GDateTime *timestamp)
-{
-    ui_incoming_private_msg(fulljid, message, timestamp);
-}
-
-void
 sv_ev_message_receipt(char *barejid, char *id)
 {
     ProfChatWin *chatwin = wins_get_chat(barejid);
diff --git a/src/ui/privwin.c b/src/ui/privwin.c
index 487492b9..5b896d85 100644
--- a/src/ui/privwin.c
+++ b/src/ui/privwin.c
@@ -32,6 +32,7 @@
  *
  */
 
+#include <assert.h>
 #include <glib.h>
 
 #include "ui/win_types.h"
@@ -41,18 +42,14 @@
 #include "config/preferences.h"
 
 void
-ui_incoming_private_msg(const char *const fulljid, const char *const message, GDateTime *timestamp)
+ui_incoming_private_msg(ProfPrivateWin *privatewin, const char *const message, GDateTime *timestamp)
 {
-    ProfPrivateWin *privatewin = wins_get_private(fulljid);
-    if (privatewin == NULL) {
-        ProfWin *window = wins_new_private(fulljid);
-        privatewin = (ProfPrivateWin*)window;
-    }
+    assert(privatewin != NULL);
 
     ProfWin *window = (ProfWin*) privatewin;
     int num = wins_get_num(window);
 
-    char *display_from = get_nick_from_full_jid(fulljid);
+    char *display_from = get_nick_from_full_jid(privatewin->fulljid);
 
     // currently viewing chat window with sender
     if (wins_is_current(window)) {
@@ -86,5 +83,7 @@ ui_incoming_private_msg(const char *const fulljid, const char *const message, GD
 void
 ui_outgoing_private_msg(ProfPrivateWin *privwin, const char *const message)
 {
+    assert(privwin != NULL);
+
     win_print((ProfWin*)privwin, '-', 0, NULL, 0, THEME_TEXT_ME, "me", message);
 }
diff --git a/src/ui/ui.h b/src/ui/ui.h
index 751e65ca..5fba3982 100644
--- a/src/ui/ui.h
+++ b/src/ui/ui.h
@@ -83,7 +83,7 @@ char* ui_get_line(void);
 char* ui_ask_pgp_passphrase(const char *hint, int prev_fail);
 void ui_contact_online(char *barejid, Resource *resource, GDateTime *last_activity);
 void ui_contact_typing(const char *const barejid, const char *const resource);
-void ui_incoming_private_msg(const char *const fulljid, const char *const message, GDateTime *timestamp);
+void ui_incoming_private_msg(ProfPrivateWin *privatewin, const char *const message, GDateTime *timestamp);
 void ui_disconnected(void);
 void ui_outgoing_private_msg(ProfPrivateWin *privwin, const char *const message);
 void ui_room_join(const char *const roomjid, gboolean focus);