Updating branch refs/heads/master to 609d230ce3dad3b9d51d67858ea88dce0e79d5ee (commit) from 08a57e5f3c7c487d909059e85f46129bfa91c6a2 (commit)
commit 609d230ce3dad3b9d51d67858ea88dce0e79d5ee Author: Stephan Arts <step...@xfce.org> Date: Sat Jun 6 18:06:03 2009 +0200 honor thumbnail dimensions in the thumbnail-bar src/thumbnail.c | 18 +++++++++++++++++- 1 files changed, 17 insertions(+), 1 deletions(-) diff --git a/src/thumbnail.c b/src/thumbnail.c index 1a5de6b..8609b21 100644 --- a/src/thumbnail.c +++ b/src/thumbnail.c @@ -162,6 +162,8 @@ rstto_thumbnail_paint(RsttoThumbnail *thumb) GtkStateType state = GTK_WIDGET_STATE(widget); GdkPixbuf *pixbuf; + guint pixbuf_height = 0; + guint pixbuf_width = 0; if(thumb->priv->image) { @@ -193,7 +195,21 @@ rstto_thumbnail_paint(RsttoThumbnail *thumb) if(pixbuf) { - pixbuf = gdk_pixbuf_scale_simple (pixbuf, widget->allocation.width, widget->allocation.height, GDK_INTERP_BILINEAR); + pixbuf_height = gdk_pixbuf_get_height (pixbuf); + pixbuf_width = gdk_pixbuf_get_width (pixbuf); + + if (pixbuf_height > pixbuf_width) + { + pixbuf_width = widget->allocation.height * pixbuf_width / pixbuf_height; + pixbuf_height = widget->allocation.height; + } + else + { + pixbuf_height = widget->allocation.width * pixbuf_height / pixbuf_width; + pixbuf_width = widget->allocation.width; + } + + pixbuf = gdk_pixbuf_scale_simple (pixbuf, pixbuf_width, pixbuf_height, GDK_INTERP_BILINEAR); gdk_draw_pixbuf(GDK_DRAWABLE(widget->window), NULL, pixbuf, _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits