diff options
Diffstat (limited to 'extra/xfdesktop/revert-SVG-images-are-no-longer-pixilated-when-scale.patch')
-rw-r--r-- | extra/xfdesktop/revert-SVG-images-are-no-longer-pixilated-when-scale.patch | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/extra/xfdesktop/revert-SVG-images-are-no-longer-pixilated-when-scale.patch b/extra/xfdesktop/revert-SVG-images-are-no-longer-pixilated-when-scale.patch new file mode 100644 index 000000000..020888a2b --- /dev/null +++ b/extra/xfdesktop/revert-SVG-images-are-no-longer-pixilated-when-scale.patch @@ -0,0 +1,108 @@ +From 8c868b20f3e19871f3f09e972cd20dbe3640084a Mon Sep 17 00:00:00 2001 +From: Evangelos Foutras <evangelos@foutrelis.com> +Date: Wed, 6 Mar 2013 04:27:07 +0200 +Subject: [PATCH] Revert "SVG images are no longer pixilated when scaled up" + +This reverts commit ebad377e5cd067cec9f2b402dff4991ddc4cc3b5. +--- + src/xfce-backdrop.c | 38 +++++++++++++++++--------------------- + 1 file changed, 17 insertions(+), 21 deletions(-) + +diff --git a/src/xfce-backdrop.c b/src/xfce-backdrop.c +index 9a4d7db..b07492f 100644 +--- a/src/xfce-backdrop.c ++++ b/src/xfce-backdrop.c +@@ -933,10 +933,17 @@ xfce_backdrop_get_pixbuf(XfceBackdrop *backdrop) + + g_return_val_if_fail(XFCE_IS_BACKDROP(backdrop), NULL); + +- if(backdrop->priv->show_image && backdrop->priv->image_path) +- gdk_pixbuf_get_file_info(backdrop->priv->image_path, &iw, &ih); +- ++ if(backdrop->priv->show_image && backdrop->priv->image_path) { ++ image = gdk_pixbuf_new_from_file(backdrop->priv->image_path, NULL); ++ if(image) { ++ iw = gdk_pixbuf_get_width(image); ++ ih = gdk_pixbuf_get_height(image); ++ } ++ } ++ + if(backdrop->priv->width == 0 || backdrop->priv->height == 0) { ++ if(!image) ++ return NULL; + w = iw; + h = ih; + } else { +@@ -956,9 +963,7 @@ xfce_backdrop_get_pixbuf(XfceBackdrop *backdrop) + final_image = create_solid(&backdrop->priv->color1, w, h, FALSE, 0xff); + } + +- /*check if the file exists, +- *and if it doesn't then make the background the single colour*/ +- if(!g_file_test(backdrop->priv->image_path, G_FILE_TEST_EXISTS)) { ++ if(!image) { + if(backdrop->priv->brightness != 0) + final_image = adjust_brightness(final_image, backdrop->priv->brightness); + +@@ -996,7 +1001,6 @@ xfce_backdrop_get_pixbuf(XfceBackdrop *backdrop) + + switch(istyle) { + case XFCE_BACKDROP_IMAGE_CENTERED: +- image = gdk_pixbuf_new_from_file(backdrop->priv->image_path, NULL); + dx = MAX((w - iw) / 2, 0); + dy = MAX((h - ih) / 2, 0); + xo = MIN((w - iw) / 2, dx); +@@ -1007,7 +1011,6 @@ xfce_backdrop_get_pixbuf(XfceBackdrop *backdrop) + break; + + case XFCE_BACKDROP_IMAGE_TILED: +- image = gdk_pixbuf_new_from_file(backdrop->priv->image_path, NULL); + tmp = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, w, h); + for(i = 0; (i * iw) < w; i++) { + for(j = 0; (j * ih) < h; j++) { +@@ -1030,10 +1033,10 @@ xfce_backdrop_get_pixbuf(XfceBackdrop *backdrop) + break; + + case XFCE_BACKDROP_IMAGE_STRETCHED: +- image = gdk_pixbuf_new_from_file_at_scale( +- backdrop->priv->image_path, w, h, FALSE, NULL); ++ xscale = (gdouble)w / iw; ++ yscale = (gdouble)h / ih; + gdk_pixbuf_composite(image, final_image, 0, 0, w, h, +- 0, 0, 1, 1, interp, 255); ++ 0, 0, xscale, yscale, interp, 255); + break; + + case XFCE_BACKDROP_IMAGE_SCALED: +@@ -1050,12 +1053,9 @@ xfce_backdrop_get_pixbuf(XfceBackdrop *backdrop) + } + dx = xo; + dy = yo; +- +- image = gdk_pixbuf_new_from_file_at_scale( +- backdrop->priv->image_path, iw * xscale, +- ih * yscale, TRUE, NULL); ++ + gdk_pixbuf_composite(image, final_image, dx, dy, +- iw * xscale, ih * yscale, xo, yo, 1, 1, ++ iw * xscale, ih * yscale, xo, yo, xscale, yscale, + interp, 255); + break; + +@@ -1071,12 +1071,8 @@ xfce_backdrop_get_pixbuf(XfceBackdrop *backdrop) + xo = 0; + yo = (h - (ih * yscale)) * 0.5; + } +- +- image = gdk_pixbuf_new_from_file_at_scale( +- backdrop->priv->image_path, iw * xscale, +- ih * yscale, TRUE, NULL); + gdk_pixbuf_composite(image, final_image, 0, 0, +- w, h, xo, yo, 1, 1, interp, 255); ++ w, h, xo, yo, xscale, yscale, interp, 255); + break; + + default: +-- +1.8.1.5 + |