[arch-commits] Commit in xfdesktop/trunk (2 files)

Evangelos Foutras foutrelis at nymeria.archlinux.org
Wed Mar 6 02:34:14 UTC 2013


    Date: Wednesday, March 6, 2013 @ 03:34:13
  Author: foutrelis
Revision: 179525

upgpkg: xfdesktop 4.10.1-2

Fix hang when solid color is selected (FS#34163)

Added:
  xfdesktop/trunk/revert-SVG-images-are-no-longer-pixilated-when-scale.patch
Modified:
  xfdesktop/trunk/PKGBUILD

------------------------------------------------------------+
 PKGBUILD                                                   |   12 -
 revert-SVG-images-are-no-longer-pixilated-when-scale.patch |  108 +++++++++++
 2 files changed, 117 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-03-06 00:34:51 UTC (rev 179524)
+++ PKGBUILD	2013-03-06 02:34:13 UTC (rev 179525)
@@ -4,7 +4,7 @@
 
 pkgname=xfdesktop
 pkgver=4.10.1
-pkgrel=1
+pkgrel=2
 pkgdesc="A desktop manager for Xfce"
 arch=('i686' 'x86_64')
 url="http://www.xfce.org/"
@@ -16,12 +16,18 @@
 replaces=('xfce4-menueditor')
 options=('!libtool')
 install=xfdesktop.install
-source=(http://archive.xfce.org/src/xfce/$pkgname/4.10/$pkgname-$pkgver.tar.bz2)
-sha256sums=('2883fe381e1b967d179fdf5ece5ac2566a3ffdb94f4cf139c7fb44567f17d4ad')
+source=(http://archive.xfce.org/src/xfce/$pkgname/4.10/$pkgname-$pkgver.tar.bz2
+        revert-SVG-images-are-no-longer-pixilated-when-scale.patch)
+sha256sums=('2883fe381e1b967d179fdf5ece5ac2566a3ffdb94f4cf139c7fb44567f17d4ad'
+            '94274832eede98a7d99652ff90ecabd932b46b0f002c25297ddd6f0c346aa3d0')
 
 build() {
   cd "$srcdir/$pkgname-$pkgver"
 
+  # Fix hang when solid color is selected
+  # https://bugzilla.xfce.org/show_bug.cgi?id=9892
+  patch -Np1 -i "$srcdir/revert-SVG-images-are-no-longer-pixilated-when-scale.patch"
+
   ./configure \
     --prefix=/usr \
     --sysconfdir=/etc \

Added: revert-SVG-images-are-no-longer-pixilated-when-scale.patch
===================================================================
--- revert-SVG-images-are-no-longer-pixilated-when-scale.patch	                        (rev 0)
+++ revert-SVG-images-are-no-longer-pixilated-when-scale.patch	2013-03-06 02:34:13 UTC (rev 179525)
@@ -0,0 +1,108 @@
+From 8c868b20f3e19871f3f09e972cd20dbe3640084a Mon Sep 17 00:00:00 2001
+From: Evangelos Foutras <evangelos at 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
+




More information about the arch-commits mailing list