Mercurial > pidgin
changeset 25354:370d8eba2ce0
Send presence updates from jabber_set_info, not jabber_set_buddy_icon.
If we change our photo at login, that may happen after we've sent initial
presence, so we need to re-send presence with the vcard-temp included.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Wed, 21 Jan 2009 20:58:07 +0000 |
parents | 9195955395b6 |
children | ba8f51cb3691 |
files | libpurple/protocols/jabber/buddy.c |
diffstat | 1 files changed, 5 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/buddy.c Wed Jan 21 20:16:22 2009 +0000 +++ b/libpurple/protocols/jabber/buddy.c Wed Jan 21 20:58:07 2009 +0000 @@ -483,27 +483,24 @@ } if (vc_node != NULL) { + PurpleAccount *account = purple_connection_get_account(js->gc); + iq = jabber_iq_new(js, JABBER_IQ_SET); xmlnode_insert_child(iq->node, vc_node); jabber_iq_send(iq); + + /* Send presence to update vcard-temp:x:update */ + jabber_presence_send(account, purple_account_get_active_status(account)); } } void jabber_set_buddy_icon(PurpleConnection *gc, PurpleStoredImage *img) { - PurplePresence *gpresence; - PurpleStatus *status; - jabber_avatar_set(gc->proto_data, img); /* vCard avatars do not have an image type requirement so update our * vCard avatar regardless of image type for those poor older clients */ jabber_set_info(gc, purple_account_get_user_info(gc->account)); - - /* TODO: Call this in jabber_set_info() if avatar changed? */ - gpresence = purple_account_get_presence(gc->account); - status = purple_presence_get_active_status(gpresence); - jabber_presence_send(gc->account, status); } /*