Mercurial > pidgin.yaz
diff libpurple/blist.c @ 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 | 28493a27849b |
children | ea18c129edfb |
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;