-
- get_resized_size (gdk_pixbuf_get_width(pixbuf), gdk_pixbuf_get_height(pixbuf),
- avail_width, avail_height, &sized_width, &sized_height);
-
- pixbuf_scaled = gdk_pixbuf_scale_simple (pixbuf, sized_width, sized_height, 0);
-
- gdk_pixbuf_render_pixmap_and_mask(pixbuf_scaled, &pixmap, &mask, 0);
+
+ if (resize) {
+ avail_width = imageview->scrolledwin->parent->allocation.width;
+ avail_height = imageview->scrolledwin->parent->allocation.height;
+ if (avail_width > 8) avail_width -= 8;
+ if (avail_height > 8) avail_height -= 8;
+
+ get_resized_size(gdk_pixbuf_get_width(pixbuf),
+ gdk_pixbuf_get_height(pixbuf),
+ avail_width, avail_height,
+ &new_width, &new_height);
+
+ pixbuf_scaled = gdk_pixbuf_scale_simple
+ (pixbuf, new_width, new_height, GDK_INTERP_BILINEAR);
+ gdk_pixbuf_unref(pixbuf);
+ pixbuf = pixbuf_scaled;
+ }
+
+ gdk_pixbuf_render_pixmap_and_mask(pixbuf, &pixmap, &mask, 0);