changeset 16510:f1513338fbdb

A patch from khc in ticket #87 "... because the contact priority is not always invalidated when the blist is updated. I removed the ui update in notify_buddy_status_update() because it doesn't recompute the priority and because the only call path for that function already updates the blist"
author Richard Laager <rlaager@wiktel.com>
date Fri, 27 Apr 2007 05:15:59 +0000
parents c01528418cc2
children f2332c0da79f
files libpurple/blist.c libpurple/status.c
diffstat 2 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/blist.c	Fri Apr 27 04:35:59 2007 +0000
+++ b/libpurple/blist.c	Fri Apr 27 05:15:59 2007 +0000
@@ -2334,7 +2334,6 @@
 					buddy = (PurpleBuddy *)bnode;
 					if (account == buddy->account) {
 						PurplePresence *presence;
-						recompute = TRUE;
 
 						presence = purple_buddy_get_presence(buddy);
 
@@ -2354,8 +2353,14 @@
 						if (!g_list_find(list, presence))
 							list = g_list_prepend(list, presence);
 
-						if (ops && ops->remove)
+						if (contact->priority == buddy)
+							purple_contact_invalidate_priority_buddy(contact);
+						else
+							recompute = TRUE;
+
+						if (ops && ops->remove) {
 							ops->remove(purplebuddylist, bnode);
+						}
 					}
 				}
 				if (recompute) {
--- a/libpurple/status.c	Fri Apr 27 04:35:59 2007 +0000
+++ b/libpurple/status.c	Fri Apr 27 05:15:59 2007 +0000
@@ -637,9 +637,6 @@
 
 		g_free(tmp);
 	}
-
-	if (ops != NULL && ops->update != NULL)
-		ops->update(purple_get_blist(), (PurpleBlistNode*)buddy);
 }
 
 static void