diff -r 2513cd7472b7 -r 668308bb9175 pidgin/gtkutils.c --- a/pidgin/gtkutils.c Fri May 16 03:18:20 2008 +0000 +++ b/pidgin/gtkutils.c Fri May 16 03:18:27 2008 +0000 @@ -1436,7 +1436,7 @@ static void dnd_image_ok_callback(_DndData *data, int choice) { - char *filedata; + gchar *filedata; size_t size; struct stat st; GError *err = NULL; @@ -1444,6 +1444,8 @@ PidginConversation *gtkconv; GtkTextIter iter; int id; + PurpleBuddy *buddy; + PurpleContact *contact; switch (choice) { case DND_BUDDY_ICON: if (g_stat(data->filename, &st)) { @@ -1459,7 +1461,13 @@ return; } - pidgin_set_custom_buddy_icon(data->account, data->who, data->filename); + buddy = purple_find_buddy(data->account, data->who); + if (!buddy) { + purple_debug_info("custom-icon", "You can only set custom icons for people on your buddylist.\n"); + break; + } + contact = purple_buddy_get_contact(buddy); + purple_buddy_icons_node_set_custom_icon_from_file((PurpleBlistNode*)contact, data->filename); break; case DND_FILE_TRANSFER: serv_send_file(purple_account_get_connection(data->account), data->who, data->filename); @@ -2869,12 +2877,11 @@ } #endif /* ! Gtk 2.6.0 */ +#ifndef PURPLE_DISABLE_DEPRECATED void pidgin_set_custom_buddy_icon(PurpleAccount *account, const char *who, const char *filename) { PurpleBuddy *buddy; PurpleContact *contact; - gpointer data = NULL; - size_t len = 0; buddy = purple_find_buddy(account, who); if (!buddy) { @@ -2883,20 +2890,9 @@ } contact = purple_buddy_get_contact(buddy); - - if (filename) { - const char *prpl_id = purple_account_get_protocol_id(account); - PurplePlugin *prpl = purple_find_prpl(prpl_id); - - data = pidgin_convert_buddy_icon(prpl, filename, &len); - - /* We don't want to delete the old icon if the new one didn't load. */ - if (data == NULL) - return; - } - - purple_buddy_icons_set_custom_icon(contact, data, len); + purple_buddy_icons_node_set_custom_icon_from_file((PurpleBlistNode*)contact, filename); } +#endif char *pidgin_make_pretty_arrows(const char *str) {