Mercurial > pidgin
changeset 20633:4c910fcb5b0a
Consider offline contacts when calculating the priority buddy. I
was seeing assertion failures when aliasing a guy in my blist
because gtk_blist_renderer_edited_cb() called
gtk_blist_auto_personize() which iterates through everyone in
that group (whether online or not) and calls purple_contact_get_alias()
to determine whether it should prompt to merge the buddies.
purple_contact_get_alias() calls purple_contact_get_priority_buddy()
which returns NULL if all buddies in that contact are offline. Might
as well just return the first PurpleBuddy if they're all offline, right?
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Mon, 24 Sep 2007 01:47:27 +0000 |
parents | 0bd4e35741f4 |
children | 275fe4d67158 |
files | libpurple/blist.c |
diffstat | 1 files changed, 6 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/blist.c Mon Sep 24 01:33:59 2007 +0000 +++ b/libpurple/blist.c Mon Sep 24 01:47:27 2007 +0000 @@ -632,12 +632,13 @@ continue; buddy = (PurpleBuddy*)bnode; - - if (!purple_account_is_connected(buddy->account)) + if (new_priority == NULL) + { + new_priority = buddy; continue; - if (new_priority == NULL) - new_priority = buddy; - else + } + + if (purple_account_is_connected(buddy->account)) { int cmp;