# HG changeset patch # User Richard Laager # Date 1177650959 0 # Node ID f1513338fbdbcfd9855eef45cba2b09852eff513 # Parent c01528418cc28f0136d500545f125bd5308f82af 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" diff -r c01528418cc2 -r f1513338fbdb libpurple/blist.c --- 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) { diff -r c01528418cc2 -r f1513338fbdb libpurple/status.c --- 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