comparison src/blist.c @ 6956:a084d95d59dc

[gaim-migrate @ 7503] this should speed signon up a bit committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Wed, 24 Sep 2003 23:26:32 +0000
parents ed14dda65d8e
children 166e42b26654
comparison
equal deleted inserted replaced
6955:2d4ab97a177e 6956:a084d95d59dc
1338 for(gnode = gaimbuddylist->root; gnode; gnode = gnode->next) { 1338 for(gnode = gaimbuddylist->root; gnode; gnode = gnode->next) {
1339 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) 1339 if(!GAIM_BLIST_NODE_IS_GROUP(gnode))
1340 continue; 1340 continue;
1341 for(cnode = gnode->child; cnode; cnode = cnode->next) { 1341 for(cnode = gnode->child; cnode; cnode = cnode->next) {
1342 if(GAIM_BLIST_NODE_IS_CONTACT(cnode)) { 1342 if(GAIM_BLIST_NODE_IS_CONTACT(cnode)) {
1343 gboolean recompute = FALSE;
1343 for(bnode = cnode->child; bnode; bnode = bnode->next) { 1344 for(bnode = cnode->child; bnode; bnode = bnode->next) {
1344 if(GAIM_BLIST_NODE_IS_BUDDY(bnode) && 1345 if(GAIM_BLIST_NODE_IS_BUDDY(bnode) &&
1345 ((GaimBuddy*)bnode)->account == account) { 1346 ((GaimBuddy*)bnode)->account == account) {
1347 recompute = TRUE;
1346 ((GaimContact*)cnode)->currentsize++; 1348 ((GaimContact*)cnode)->currentsize++;
1347 if(((GaimContact*)cnode)->currentsize == 1) 1349 if(((GaimContact*)cnode)->currentsize == 1)
1348 ((GaimGroup*)gnode)->currentsize++; 1350 ((GaimGroup*)gnode)->currentsize++;
1349 if(GAIM_BUDDY_IS_ONLINE((GaimBuddy*)bnode)) { 1351 if(GAIM_BUDDY_IS_ONLINE((GaimBuddy*)bnode)) {
1350 ((GaimContact*)cnode)->online++; 1352 ((GaimContact*)cnode)->online++;
1352 ((GaimGroup*)gnode)->online++; 1354 ((GaimGroup*)gnode)->online++;
1353 } 1355 }
1354 ops->update(gaimbuddylist, bnode); 1356 ops->update(gaimbuddylist, bnode);
1355 } 1357 }
1356 } 1358 }
1357 gaim_contact_compute_priority_buddy((GaimContact*)cnode); 1359 if(recompute) {
1358 ops->update(gaimbuddylist, cnode); 1360 gaim_contact_compute_priority_buddy((GaimContact*)cnode);
1361 ops->update(gaimbuddylist, cnode);
1362 }
1359 } else if(GAIM_BLIST_NODE_IS_CHAT(cnode) && 1363 } else if(GAIM_BLIST_NODE_IS_CHAT(cnode) &&
1360 ((GaimBlistChat*)cnode)->account == account) { 1364 ((GaimBlistChat*)cnode)->account == account) {
1361 ((GaimGroup *)gnode)->online++; 1365 ((GaimGroup *)gnode)->online++;
1362 ((GaimGroup *)gnode)->currentsize++; 1366 ((GaimGroup *)gnode)->currentsize++;
1363 ops->update(gaimbuddylist, cnode); 1367 ops->update(gaimbuddylist, cnode);