src/blist.c

changeset 6956
0cc915e1f7ba
parent 6945
1f16326407fe
child 6957
4c45f4202c6f
--- a/src/blist.c	Wed Sep 24 23:19:25 2003 +0000
+++ b/src/blist.c	Wed Sep 24 23:26:32 2003 +0000
@@ -1340,9 +1340,11 @@
 			continue;
 		for(cnode = gnode->child; cnode; cnode = cnode->next) {
 			if(GAIM_BLIST_NODE_IS_CONTACT(cnode)) {
+				gboolean recompute = FALSE;
 					for(bnode = cnode->child; bnode; bnode = bnode->next) {
 						if(GAIM_BLIST_NODE_IS_BUDDY(bnode) &&
 								((GaimBuddy*)bnode)->account == account) {
+							recompute = TRUE;
 							((GaimContact*)cnode)->currentsize++;
 							if(((GaimContact*)cnode)->currentsize == 1)
 								((GaimGroup*)gnode)->currentsize++;
@@ -1354,8 +1356,10 @@
 							ops->update(gaimbuddylist, bnode);
 						}
 					}
-					gaim_contact_compute_priority_buddy((GaimContact*)cnode);
-					ops->update(gaimbuddylist, cnode);
+					if(recompute) {
+						gaim_contact_compute_priority_buddy((GaimContact*)cnode);
+						ops->update(gaimbuddylist, cnode);
+					}
 			} else if(GAIM_BLIST_NODE_IS_CHAT(cnode) &&
 					((GaimBlistChat*)cnode)->account == account) {
 				((GaimGroup *)gnode)->online++;

mercurial