diff -r efe6019c9e91 -r 7a07b6857540 pidgin/gtkutils.c --- a/pidgin/gtkutils.c Thu Aug 23 01:27:48 2012 -0400 +++ b/pidgin/gtkutils.c Fri Jan 25 02:22:38 2013 -0500 @@ -28,9 +28,7 @@ #include "internal.h" #include "pidgin.h" -#ifndef _WIN32 -# include -#else +#ifdef _WIN32 # ifdef small # undef small # endif @@ -120,6 +118,7 @@ NULL); webkit_web_view_set_settings(WEBKIT_WEB_VIEW(webview), settings); + g_object_unref(settings); } #endif } @@ -1411,7 +1410,7 @@ } shortname = strrchr(data->filename, G_DIR_SEPARATOR); shortname = shortname ? shortname + 1 : data->filename; - id = purple_imgstore_add_with_id(filedata, size, shortname); + id = purple_imgstore_new_with_id(filedata, size, shortname); gtk_webview_insert_image(GTK_WEBVIEW(gtkconv->entry), id); purple_imgstore_unref_by_id(id); @@ -2162,7 +2161,7 @@ static void icon_preview_change_cb(GtkFileChooser *widget, struct _icon_chooser *dialog) { - GdkPixbuf *pixbuf, *scale; + GdkPixbuf *pixbuf; int height, width; char *basename, *markup, *size; struct stat st; @@ -2171,7 +2170,7 @@ filename = gtk_file_chooser_get_preview_filename( GTK_FILE_CHOOSER(dialog->icon_filesel)); - if (!filename || g_stat(filename, &st) || !(pixbuf = pidgin_pixbuf_new_from_file(filename))) + if (!filename || g_stat(filename, &st) || !(pixbuf = pidgin_pixbuf_new_from_file_at_size(filename, 128, 128))) { gtk_image_set_from_pixbuf(GTK_IMAGE(dialog->icon_preview), NULL); gtk_label_set_markup(GTK_LABEL(dialog->icon_text), ""); @@ -2179,8 +2178,7 @@ return; } - width = gdk_pixbuf_get_width(pixbuf); - height = gdk_pixbuf_get_height(pixbuf); + gdk_pixbuf_get_file_info(filename, &width, &height); basename = g_path_get_basename(filename); size = purple_str_size_to_units(st.st_size); markup = g_strdup_printf(_("File: %s\n" @@ -2188,13 +2186,10 @@ "Image size: %dx%d"), basename, size, width, height); - scale = gdk_pixbuf_scale_simple(pixbuf, width * 50 / height, - 50, GDK_INTERP_BILINEAR); - gtk_image_set_from_pixbuf(GTK_IMAGE(dialog->icon_preview), scale); + gtk_image_set_from_pixbuf(GTK_IMAGE(dialog->icon_preview), pixbuf); gtk_label_set_markup(GTK_LABEL(dialog->icon_text), markup); g_object_unref(G_OBJECT(pixbuf)); - g_object_unref(G_OBJECT(scale)); g_free(filename); g_free(basename); g_free(size);