src/image_viewer.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/image_viewer.c b/src/image_viewer.c index 6b673c21..b0da66e0 100644 --- a/src/image_viewer.c +++ b/src/image_viewer.c @@ -341,10 +341,16 @@ rstto_image_viewer_init (RsttoImageViewer *viewer) NULL); if (viewer->priv->bg_icon != NULL) { - gdk_pixbuf_saturate_and_pixelate ( - viewer->priv->bg_icon, - viewer->priv->bg_icon, - 0, FALSE); + GdkPixbuf *tmp = gdk_pixbuf_copy (viewer->priv->bg_icon); + + if (tmp != NULL) { + gdk_pixbuf_saturate_and_pixelate ( + viewer->priv->bg_icon, + tmp, + 0, FALSE); + g_object_unref (viewer->priv->bg_icon); + viewer->priv->bg_icon = tmp; + } } g_signal_connect (viewer->priv->settings, "notify::bgcolor",