# HG changeset patch # User Paul Aurich # Date 1232571487 0 # Node ID 370d8eba2ce08b330ffc0b67bb8fe6e112892bbe # Parent 9195955395b6cc83f8b6b06e60d79d563663b5dd 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. diff -r 9195955395b6 -r 370d8eba2ce0 libpurple/protocols/jabber/buddy.c --- 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); } /*