Mercurial > pidgin.yaz
diff pidgin/gtkblist.c @ 26479:f5f08111da52
propagate from branch 'im.pidgin.pidgin' (head a609160715ae18beed98b084aac19bc0f6551362)
to branch 'im.pidgin.pidgin.vv' (head 6e683319559d829234bc548e0795ed03403af478)
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Wed, 01 Apr 2009 04:25:37 +0000 |
parents | 38238d41923b 1b2d418c26ff |
children | bd61f91e669a b290c7b9fc73 1337d2813b2d 5391094529c6 |
line wrap: on
line diff
--- a/pidgin/gtkblist.c Wed Apr 01 04:24:11 2009 +0000 +++ b/pidgin/gtkblist.c Wed Apr 01 04:25:37 2009 +0000 @@ -3946,7 +3946,7 @@ presence = purple_buddy_get_presence(b); /* Name is all that is needed */ - if (aliased && biglist) { + if (!aliased || biglist) { /* Status Info */ prpl = purple_find_prpl(purple_account_get_protocol_id(b->account)); @@ -4086,7 +4086,7 @@ } /* Put it all together */ - if (aliased && biglist && (statustext || idletime)) { + if ((!aliased || biglist) && (statustext || idletime)) { /* using <span size='smaller'> breaks the status, so it must be seperated into <small><span>*/ if (name_color) { text = g_strdup_printf("<span font_desc='%s' foreground='%s'>%s</span>\n" @@ -6491,7 +6491,7 @@ gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"); PidginBlistNode *ui; PurpleConversation *conv; - gboolean hidden; + gboolean hidden = FALSE; GdkColor *bgcolor = NULL; FontColorPair *pair; PidginBlistTheme *theme; @@ -6749,14 +6749,27 @@ whoalias = NULL; g = NULL; - if ((grp != NULL) && (*grp != '\0') && ((g = purple_find_group(grp)) == NULL)) + if ((grp != NULL) && (*grp != '\0')) { - g = purple_group_new(grp); - purple_blist_add_group(g, NULL); - } - - b = purple_buddy_new(data->account, who, whoalias); - purple_blist_add_buddy(b, NULL, g, NULL); + if ((g = purple_find_group(grp)) == NULL) + { + g = purple_group_new(grp); + purple_blist_add_group(g, NULL); + } + + b = purple_find_buddy_in_group(data->account, who, g); + } + else if ((b = purple_find_buddy(data->account, who)) != NULL) + { + g = purple_buddy_get_group(b); + } + + if (b == NULL) + { + b = purple_buddy_new(data->account, who, whoalias); + purple_blist_add_buddy(b, NULL, g, NULL); + } + purple_account_add_buddy(data->account, b); /* Offer to merge people with the same alias. */