Mercurial > pidgin
changeset 29919:716d6bb38829
jabber: Refined logic for determining "is typing" support.
This was pointed out by the people in #11819 as being slightly better
(ignore stray <message/> stanzas and no way to "escape")
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Wed, 12 May 2010 06:35:28 +0000 |
parents | e63ea24aa291 |
children | a4662fd44a7e a327c6a1d5ca |
files | libpurple/protocols/jabber/message.c |
diffstat | 1 files changed, 9 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/message.c Wed May 12 05:21:47 2010 +0000 +++ b/libpurple/protocols/jabber/message.c Wed May 12 06:35:28 2010 +0000 @@ -75,12 +75,8 @@ jbr = jabber_buddy_find_resource(jb, jid->resource); if(!jm->xhtml && !jm->body) { - if (jbr) { - if (jm->chat_state != JM_STATE_NONE) - jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; - else - jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED; - } + if (jbr && jm->chat_state != JM_STATE_NONE) + jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; if(JM_STATE_COMPOSING == jm->chat_state) { serv_got_typing(gc, jm->from, 0, PURPLE_TYPING); @@ -142,10 +138,13 @@ } if(jbr) { - if (jm->chat_state != JM_STATE_NONE) - jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; - else - jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED; + /* Treat SUPPORTED as a terminal with no escape :) */ + if (jbr->chat_states != JABBER_CHAT_STATES_SUPPORTED) { + if (jm->chat_state != JM_STATE_NONE) + jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; + else + jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED; + } if(jbr->thread_id) g_free(jbr->thread_id);