# HG changeset patch # User Mikael Berthe # Date 1163329958 -3600 # Node ID 54405d09b15ab9393f7d1e6792e123d61fcc0f34 # Parent c112423ac0129ab101a27de50c77cf8c24e49ed7 Add a call to buddylist_build() Sometimes buddylist_build() isn't called when a line is added to a hidden buffer (for ex. when receiving an IQ:version). Dealing with this in roster_msg_setflag() should fix it, and may save us a few useless calls... diff -r c112423ac012 -r 54405d09b15a mcabber/src/hooks.c --- a/mcabber/src/hooks.c Sun Nov 12 10:51:43 2006 +0100 +++ b/mcabber/src/hooks.c Sun Nov 12 12:12:38 2006 +0100 @@ -148,13 +148,12 @@ scr_Beep(); } - // We need to rebuild the list if the sender is unknown or + // We need to update the roster if the sender is unknown or // if the sender is offline/invisible and hide_offline_buddies is set if (new_guy || (buddy_getstatus(roster_usr->data, NULL) == offline && buddylist_get_hide_offline_buddies())) { - buddylist_build(); update_roster = TRUE; } diff -r c112423ac012 -r 54405d09b15a mcabber/src/jabglue.c --- a/mcabber/src/jabglue.c Sun Nov 12 10:51:43 2006 +0100 +++ b/mcabber/src/jabglue.c Sun Nov 12 12:12:38 2006 +0100 @@ -1512,7 +1512,6 @@ g_free(mbuf); // Send back an unavailable packet jb_setstatus(offline, roomjid, ""); - buddylist_build(); scr_DrawRoster(); return; } @@ -1682,7 +1681,6 @@ } else scr_LogPrint(LPRINT_LOGNORM, "MUC DBG: no rname!"); /* DBG */ - buddylist_build(); scr_DrawRoster(); } @@ -2087,10 +2085,8 @@ newbuddy = FALSE; } - if (newbuddy) { - buddylist_build(); + if (newbuddy) update_roster = TRUE; - } g_free(r); } diff -r c112423ac012 -r 54405d09b15a mcabber/src/roster.c --- a/mcabber/src/roster.c Sun Nov 12 10:51:43 2006 +0100 +++ b/mcabber/src/roster.c Sun Nov 12 12:12:38 2006 +0100 @@ -615,7 +615,7 @@ // ROSTER_FLAG_MSG should already be set... } - if (buddylist && new_roster_item) + if (buddylist && (new_roster_item || !g_list_find(buddylist, roster_usr))) buddylist_build(); }