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()) {