changeset 15648:e86623eb3b79

Receiving XEP 85 'gone' messages. Doesn't do anything because of the string freeze. This is akin to the MSN 'so-and-so has closed the conversation window' messages. Rlaager made a strong point to me that they're not altogether stalky, but can be useful.
author Sean Egan <seanegan@gmail.com>
date Fri, 16 Feb 2007 00:53:06 +0000
parents 193456f03b9c
children e9a87896557e
files libpurple/protocols/jabber/message.c
diffstat 1 files changed, 17 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/jabber/message.c	Fri Feb 16 00:40:35 2007 +0000
+++ b/libpurple/protocols/jabber/message.c	Fri Feb 16 00:53:06 2007 +0000
@@ -78,12 +78,26 @@
 	}
 
 	if(!jm->xhtml && !jm->body) {
-		if(JM_STATE_COMPOSING == jm->chat_state)
+		if(JM_STATE_COMPOSING == jm->chat_state) {
 			serv_got_typing(jm->js->gc, from, 0, GAIM_TYPING);
-		else if(JM_STATE_PAUSED == jm->chat_state)
+		} else if(JM_STATE_PAUSED == jm->chat_state) {
 			serv_got_typing(jm->js->gc, from, 0, GAIM_TYPED);
-		else
+		} else if(JM_STATE_GONE == jm->chat_state) {
+			GaimConversation *conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM,
+					from, jm->js->gc->account);
+			if (conv) {
+#if 0  /* String freeze */
+				gaim_conversation_write(conv, "",
+						  "So and so has left the conversation.",
+						  GAIM_MESSAGE_INFO, time(NULL));
+#endif
+				
+			}
 			serv_got_typing_stopped(jm->js->gc, from);
+			
+		} else {
+			serv_got_typing_stopped(jm->js->gc, from);
+		}
 	} else {
 		if(jbr) {
 			if(JM_TS_JEP_0085 == (jm->typing_style & JM_TS_JEP_0085)) {