Mercurial > pidgin
changeset 16566:45773df910e0
merge of 'a8caeb1c79d1daf68ca89b1cc36cef4578306ea1'
and 'e33fd060bfb78ebc76bd2ce4b79eeb82dc3ad48f'
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Sat, 28 Apr 2007 04:10:18 +0000 |
parents | 40b90b191ff3 (diff) ac0d07c7fd90 (current diff) |
children | 7b692d5dd704 db7e68346e44 |
files | |
diffstat | 3 files changed, 26 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/buddyicon.c Sat Apr 28 04:08:46 2007 +0000 +++ b/libpurple/buddyicon.c Sat Apr 28 04:10:18 2007 +0000 @@ -948,13 +948,19 @@ } else { - int checksum = purple_blist_node_get_int(node, "icon_checksum"); - if (checksum != 0) + PurpleAccount account = purple_buddy_get_account((PurpleBuddy *)node); + const char *prpl_id = purple_account_get_protocol_id(account); + + if (!strcmp(prpl_id, "prpl-yahoo")) { - char *checksum_str = g_strdup_printf("%i", checksum); - purple_blist_node_remove_setting(node, "icon_checksum"); - purple_blist_node_set_string(node, "icon_checksum", checksum_str); - g_free(checksum_str); + int checksum = purple_blist_node_get_int(node, "icon_checksum"); + if (checksum != 0) + { + char *checksum_str = g_strdup_printf("%i", checksum); + purple_blist_node_remove_setting(node, "icon_checksum"); + purple_blist_node_set_string(node, "icon_checksum", checksum_str); + g_free(checksum_str); + } } } }
--- a/pidgin/gtkdocklet-x11.c Sat Apr 28 04:08:46 2007 +0000 +++ b/pidgin/gtkdocklet-x11.c Sat Apr 28 04:10:18 2007 +0000 @@ -77,7 +77,7 @@ g_object_unref(G_OBJECT(docklet)); docklet = NULL; - g_idle_add(docklet_x11_create_cb, NULL); + g_idle_add(docklet_x11_recreate_cb, NULL); } static void
--- a/pidgin/gtkstatusbox.c Sat Apr 28 04:08:46 2007 +0000 +++ b/pidgin/gtkstatusbox.c Sat Apr 28 04:10:18 2007 +0000 @@ -2014,6 +2014,17 @@ } static void +pixbuf_size_prepared_cb(GdkPixbufLoader *loader, int width, int height, gpointer data) +{ +#if GTK_CHECK_VERSION(2,2,0) + int w, h; + GtkIconSize icon_size = gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_MEDIUM); + gtk_icon_size_lookup(icon_size, &w, &h); + gdk_pixbuf_loader_set_size(loader, w, h); +#endif +} + +static void pidgin_status_box_redisplay_buddy_icon(PidginStatusBox *status_box) { @@ -2031,6 +2042,7 @@ if (status_box->buddy_icon_img != NULL) { GdkPixbufLoader *loader = gdk_pixbuf_loader_new(); + g_signal_connect(G_OBJECT(loader), "size-prepared", G_CALLBACK(pixbuf_size_prepared_cb), NULL); gdk_pixbuf_loader_write(loader, purple_imgstore_get_data(status_box->buddy_icon_img), purple_imgstore_get_size(status_box->buddy_icon_img), NULL); gdk_pixbuf_loader_close(loader, NULL); @@ -2047,7 +2059,7 @@ } if (status_box->buddy_icon != NULL) { - status_box->icon_opaque = pidgin_gdk_pixbuf_is_opaque(status_box->buddy_icon); + status_box->icon_opaque = pidgin_gdk_pixbuf_is_opaque(status_box->buddy_icon); gtk_image_set_from_pixbuf(GTK_IMAGE(status_box->icon), status_box->buddy_icon); status_box->buddy_icon_hover = gdk_pixbuf_copy(status_box->buddy_icon); do_colorshift(status_box->buddy_icon_hover, status_box->buddy_icon_hover, 32);