diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/chat_session.c | 10 | ||||
-rw-r--r-- | src/chat_session.h | 1 | ||||
-rw-r--r-- | src/xmpp/message.c | 6 |
3 files changed, 12 insertions, 5 deletions
diff --git a/src/chat_session.c b/src/chat_session.c index dfe2aac9..5aa37d4b 100644 --- a/src/chat_session.c +++ b/src/chat_session.c @@ -278,6 +278,16 @@ chat_session_on_message_send(const char * const barejid) } void +chat_session_on_incoming_message(const char * const barejid, gboolean recipient_supports) +{ + if (!chat_session_exists(barejid)) { + chat_session_new(barejid, recipient_supports); + } else { + chat_session_set_recipient_supports(barejid, recipient_supports); + } +} + +void chat_session_on_window_open(const char * const barejid) { if (prefs_get_boolean(PREF_STATES)) { diff --git a/src/chat_session.h b/src/chat_session.h index 53923438..7f0a0e44 100644 --- a/src/chat_session.h +++ b/src/chat_session.h @@ -58,5 +58,6 @@ 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); +void chat_session_on_incoming_message(const char * const barejid, gboolean recipient_supports); #endif diff --git a/src/xmpp/message.c b/src/xmpp/message.c index 2cf7c4d3..35a4ae05 100644 --- a/src/xmpp/message.c +++ b/src/xmpp/message.c @@ -459,11 +459,7 @@ _chat_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza, } // create or update chat session - if (!chat_session_exists(jid->barejid)) { - chat_session_new(jid->barejid, recipient_supports); - } else { - chat_session_set_recipient_supports(jid->barejid, recipient_supports); - } + chat_session_on_incoming_message(jid->barejid, recipient_supports); // determine if the notifications happened whilst offline GTimeVal tv_stamp; |