changeset 25885:c56debe9ae4f

*** Plucked rev fade006b (malu@pidgin.im): Only pre-create a PurpleConversation (if there was none yet) if an incoming message contains custom smileys. Partly fixes the \"popup a conversation window when set to hide\" bug. Until I found a better way to fix entirely... Refs #7380 *** Plucked rev 120a0724 (darkrain42@pidgin.im): Only look for and add custom smileys to incoming messages that are going to end up being displayed in a conversation window (i.e. not headline messages). Closes #7516.
author Paul Aurich <paul@darkrain42.org>
date Sat, 02 May 2009 23:30:49 +0000
parents b9a90f34b780
children de4393eba497
files ChangeLog libpurple/protocols/jabber/message.c
diffstat 2 files changed, 28 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sat May 02 21:11:02 2009 +0000
+++ b/ChangeLog	Sat May 02 23:30:49 2009 +0000
@@ -20,6 +20,10 @@
 	* Fix some errors about the friendly name changing too fast caused
 	  by MSN/Yahoo integration buddies.
 
+	XMPP:
+	* Less likely to pop up a new conversation window in disregard of
+	  the "Hide new IM conversations" preference.
+
 	Yahoo:
 	* Fix a crash when sending very long messages.
 
@@ -692,13 +696,13 @@
 version 2.2.0 (09/13/2007):
 	http://developer.pidgin.im/query?status=closed&milestone=2.2.0
 
-	Libpurple:
+	libpurple:
 	* New protocol plugin: MySpaceIM (Jeff Connelly, Google Summer of
 	  Code)
 	* XMPP enhancements. See
-	  http://www.adiumx.com/blog/2007/07/soc-xmpp-update.php (Andreas 
+	  http://www.adiumx.com/blog/2007/07/soc-xmpp-update.php (Andreas
 	  Monitzer, Google Summer of Code for Adium)
-	* Certificate management. Libpurple will validate certificates on
+	* Certificate management. libpurple will validate certificates on
 	  SSL-encrypted protocols (William Ehlhardt, Google Summer of Code)
 	* Some adjustments were made to fix sending messages when using
 	  the MSN HTTP method. (Laszlo Pandy)
--- a/libpurple/protocols/jabber/message.c	Sat May 02 21:11:02 2009 +0000
+++ b/libpurple/protocols/jabber/message.c	Sat May 02 23:30:49 2009 +0000
@@ -633,24 +633,28 @@
 					purple_debug_info("jabber", "found %d smileys\n",
 						g_list_length(smiley_refs));
 					
-					if (jm->type == JABBER_MESSAGE_GROUPCHAT) {
-						JabberID *jid = jabber_id_new(jm->from);
-						JabberChat *chat = NULL;
+					if (smiley_refs) {		
+						if (jm->type == JABBER_MESSAGE_GROUPCHAT) {
+							JabberID *jid = jabber_id_new(jm->from);
+							JabberChat *chat = NULL;
 
-						if (jid) {
-							chat = jabber_chat_find(js, jid->node, jid->domain);
-							if (chat) conv = chat->conv;
-						}
+							if (jid) {
+								chat = jabber_chat_find(js, jid->node, jid->domain);
+								if (chat) conv = chat->conv;
+							}
 
-						jabber_id_free(jid);
-					} else {
-						conv =
-							purple_find_conversation_with_account(PURPLE_CONV_TYPE_ANY,
-								who, account);
-						if (!conv) {
-							/* we need to create the conversation here */
-							conv = purple_conversation_new(PURPLE_CONV_TYPE_IM,
-								account, who);
+							jabber_id_free(jid);
+						} else if (jm->type == JABBER_MESSAGE_NORMAL ||
+						           jm->type == JABBER_MESSAGE_CHAT) {
+							conv =
+								purple_find_conversation_with_account(PURPLE_CONV_TYPE_ANY,
+									who, account);
+							if (!conv) {
+								/* we need to create the conversation here */
+								conv = 
+									purple_conversation_new(PURPLE_CONV_TYPE_IM,
+									account, who);
+							}
 						}
 					}
 
@@ -682,7 +686,7 @@
 						    TRUE)) {
 						const JabberData *data =
 								jabber_data_find_remote_by_cid(cid);
-						/* if data is already known, we add write it immediatly */
+						/* if data is already known, we write it immediatly */
 						if (data) {
 							purple_debug_info("jabber", 
 								"data is already known\n");