about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/chat_session.c10
-rw-r--r--src/chat_session.h1
-rw-r--r--src/command/commands.c14
3 files changed, 13 insertions, 12 deletions
diff --git a/src/chat_session.c b/src/chat_session.c
index 9e9056a8..dfe2aac9 100644
--- a/src/chat_session.c
+++ b/src/chat_session.c
@@ -277,6 +277,16 @@ chat_session_on_message_send(const char * const barejid)
     return send_state;
 }
 
+void
+chat_session_on_window_open(const char * const barejid)
+{
+    if (prefs_get_boolean(PREF_STATES)) {
+        if (!chat_session_exists(barejid)) {
+            chat_session_new(barejid, TRUE);
+        }
+    }
+}
+
 static void
 _chat_session_free(ChatSession *session)
 {
diff --git a/src/chat_session.h b/src/chat_session.h
index efb2b6ce..53923438 100644
--- a/src/chat_session.h
+++ b/src/chat_session.h
@@ -57,5 +57,6 @@ void chat_session_set_gone(const char * const recipient);
 void chat_session_set_sent(const char * const recipient);
 gboolean chat_session_get_sent(const char * const recipient);
 gboolean chat_session_on_message_send(const char * const barejid);
+void chat_session_on_window_open(const char * const barejid);
 
 #endif
diff --git a/src/command/commands.c b/src/command/commands.c
index a6280b93..53d6782b 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -1231,12 +1231,7 @@ cmd_msg(gchar **args, struct cmd_help_t help)
 #endif
 
         } else { // msg == NULL
-            if (prefs_get_boolean(PREF_STATES)) {
-                if (!chat_session_exists(barejid)) {
-                    chat_session_new(barejid, TRUE);
-                }
-            }
-
+            chat_session_on_window_open(barejid);
             ui_new_chat_win(barejid);
 #ifdef HAVE_LIBOTR
             if (otr_is_secure(barejid)) {
@@ -3905,12 +3900,7 @@ cmd_otr(gchar **args, struct cmd_help_t help)
                 barejid = contact;
             }
 
-            if (prefs_get_boolean(PREF_STATES)) {
-                if (!chat_session_exists(barejid)) {
-                    chat_session_new(barejid, TRUE);
-                }
-            }
-
+            chat_session_on_window_open(barejid);
             ui_new_chat_win(barejid);
 
             if (ui_current_win_is_otr()) {