summaryrefslogtreecommitdiff
path: root/extra/xfdesktop/revert-SVG-images-are-no-longer-pixilated-when-scale.patch
diff options
context:
space:
mode:
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.patch108
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
+