From f85ef1880392936173facf09c573795e69ed5ed4 Mon Sep 17 00:00:00 2001 From: Stephan Arts Date: Sun, 23 Oct 2011 07:34:55 +0200 Subject: Fix bug #8036 --- src/image_viewer.c | 49 ++++++++++++++++++++++++++----------------------- 1 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/image_viewer.c b/src/image_viewer.c index 7017577..a5a6a70 100644 --- a/src/image_viewer.c +++ b/src/image_viewer.c @@ -1741,32 +1741,35 @@ cb_rstto_image_viewer_queued_repaint (RsttoImageViewer *viewer) subpixbuf_y_offset, subpixbuf_width, subpixbuf_height); - - switch (viewer->priv->orientation) + if (NULL != tmp_pixbuf) { - case RSTTO_IMAGE_VIEWER_ORIENT_180: - tmp_pixbuf2 = gdk_pixbuf_rotate_simple (tmp_pixbuf, GDK_PIXBUF_ROTATE_UPSIDEDOWN); - g_object_unref (tmp_pixbuf); - tmp_pixbuf = tmp_pixbuf2; - break; - case RSTTO_IMAGE_VIEWER_ORIENT_270: - tmp_pixbuf2 = gdk_pixbuf_rotate_simple (tmp_pixbuf, GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE); - g_object_unref (tmp_pixbuf); - tmp_pixbuf = tmp_pixbuf2; - break; - case RSTTO_IMAGE_VIEWER_ORIENT_90: - tmp_pixbuf2 = gdk_pixbuf_rotate_simple (tmp_pixbuf, GDK_PIXBUF_ROTATE_CLOCKWISE); - g_object_unref (tmp_pixbuf); - tmp_pixbuf = tmp_pixbuf2; - break; - } - viewer->priv->dst_pixbuf = gdk_pixbuf_scale_simple (tmp_pixbuf, - (gint)(gdk_pixbuf_get_width(tmp_pixbuf) * relative_scale), - (gint)(gdk_pixbuf_get_height(tmp_pixbuf) * relative_scale), - GDK_INTERP_BILINEAR); + switch (viewer->priv->orientation) + { + case RSTTO_IMAGE_VIEWER_ORIENT_180: + tmp_pixbuf2 = gdk_pixbuf_rotate_simple (tmp_pixbuf, GDK_PIXBUF_ROTATE_UPSIDEDOWN); + g_object_unref (tmp_pixbuf); + tmp_pixbuf = tmp_pixbuf2; + break; + case RSTTO_IMAGE_VIEWER_ORIENT_270: + tmp_pixbuf2 = gdk_pixbuf_rotate_simple (tmp_pixbuf, GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE); + g_object_unref (tmp_pixbuf); + tmp_pixbuf = tmp_pixbuf2; + break; + case RSTTO_IMAGE_VIEWER_ORIENT_90: + tmp_pixbuf2 = gdk_pixbuf_rotate_simple (tmp_pixbuf, GDK_PIXBUF_ROTATE_CLOCKWISE); + g_object_unref (tmp_pixbuf); + tmp_pixbuf = tmp_pixbuf2; + break; + } - g_object_unref (tmp_pixbuf); + viewer->priv->dst_pixbuf = gdk_pixbuf_scale_simple (tmp_pixbuf, + (gint)(gdk_pixbuf_get_width(tmp_pixbuf) * relative_scale), + (gint)(gdk_pixbuf_get_height(tmp_pixbuf) * relative_scale), + GDK_INTERP_BILINEAR); + + g_object_unref (tmp_pixbuf); + } } /* -- 1.7.7