[arch-commits] Commit in gpicview/trunk (PKGBUILD fix-scrolling.patch)

Balló György bgyorgy at nymeria.archlinux.org
Mon Sep 2 21:25:56 UTC 2013


    Date: Monday, September 2, 2013 @ 23:25:56
  Author: bgyorgy
Revision: 96671

upgpkg: gpicview 0.2.3-2

- Switch to upstream source
- Fix scrolling (FS#34872)
- Apply one main category only (FS#34684)

Added:
  gpicview/trunk/fix-scrolling.patch
Modified:
  gpicview/trunk/PKGBUILD

---------------------+
 PKGBUILD            |   18 +++++-
 fix-scrolling.patch |  149 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 164 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-09-02 21:17:56 UTC (rev 96670)
+++ PKGBUILD	2013-09-02 21:25:56 UTC (rev 96671)
@@ -5,7 +5,7 @@
 
 pkgname=gpicview
 pkgver=0.2.3
-pkgrel=1
+pkgrel=2
 pkgdesc="lightweight image viewer"
 arch=('i686' 'x86_64')
 license=('GPL2')
@@ -15,9 +15,21 @@
 install=$pkgname.install
 makedepends=('pkgconfig' 'intltool')
 optdepends=('librsvg: For SVG support')
-source=(http://ftp.de.debian.org/debian/pool/main/g/$pkgname/${pkgname}_${pkgver}.orig.tar.xz)
-md5sums=('0f1275b5b0ca66e48963a7ccda8a5019')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz
+        fix-scrolling.patch)
+md5sums=('bca9ffe1d283ed3dbb13bada7feb7e89'
+         'f258a3e703c4daa2f79c0c9f5a625d86')
 
+prepare() {
+	cd "$srcdir/$pkgname-$pkgver"
+
+	# Fix scrolling (FS#34872)
+	patch -Np1 -i "$srcdir/fix-scrolling.patch"
+
+	# Apply one main category only (FS#34684)
+	sed -i '/^Categories=/ s/Utility;//' gpicview.desktop.in
+}
+
 build() {
 	cd "$srcdir/$pkgname-$pkgver"
 	./configure --sysconfdir=/etc --prefix=/usr

Added: fix-scrolling.patch
===================================================================
--- fix-scrolling.patch	                        (rev 0)
+++ fix-scrolling.patch	2013-09-02 21:25:56 UTC (rev 96671)
@@ -0,0 +1,149 @@
+From 88e76ee77d7271820dfad4b66ea1ca892e1a1ae0 Mon Sep 17 00:00:00 2001
+From: Vadim Ushakov <igeekless at gmail.com>
+Date: Fri, 3 Aug 2012 22:43:29 +0800
+Subject: [PATCH] fix scrolling when scale == 1
+
+---
+ src/image-view.c |   98 ++++++++----------------------------------------------
+ 1 files changed, 14 insertions(+), 84 deletions(-)
+
+diff --git a/src/image-view.c b/src/image-view.c
+index cd40e3a..b367f2a 100644
+--- a/src/image-view.c
++++ b/src/image-view.c
+@@ -309,65 +309,6 @@ void image_view_paint( ImageView* iv, GdkEventExpose* evt )
+         {
+             // GdkRectangle& rect = rects[i];
+             paint( iv, rects + i, GDK_INTERP_NEAREST );
+-#if 0
+-            g_debug("dirty dest: x=%d, y=%d, w=%d, h=%d\nx_off=%d, y_off=%d",
+-                    rect.x, rect.y, rect.width, rect.height, iv->img_area.x, iv->img_area.y );
+-
+-            if( ! gdk_rectangle_intersect( &rect, &iv->img_area, &rect ) )
+-                continue;
+-
+-            int dest_x = rect.x;
+-            int dest_y = rect.y;
+-
+-            rect.x -= img_area.x;
+-            rect.y -= img_area.y;
+-
+-            GdkPixbuf* src_pix = NULL;
+-            int src_x, src_y;
+-            if( iv->scale == 1.0 )  // original size
+-            {
+-                src_pix = (GdkPixbuf*)g_object_ref( pix );
+-                src_x = rect.x;
+-                src_y = rect.y;
+-            }
+-            else    // scaling is needed
+-            {
+-                GdkPixbuf* scaled_pix = NULL;
+-                int src_w, src_h;
+-                src_x = (int)floor( gdouble(rect.x) / scale + 0.5 );
+-                src_y = (int)floor( gdouble(rect.y) / scale + 0.5 );
+-                src_w = (int)floor( gdouble(rect.width) / scale + 0.5 );
+-                src_h = (int)floor( gdouble(rect.height) / scale + 0.5 );
+-                if( src_y > gdk_pixbuf_get_height(pix) )
+-                    src_y = gdk_pixbuf_get_height(pix);
+-                if( src_x + src_w > gdk_pixbuf_get_width(pix) )
+-                    src_w = gdk_pixbuf_get_width(pix) - src_x;
+-                if( src_y + src_h > gdk_pixbuf_get_height(pix) )
+-                    src_h = gdk_pixbuf_get_height(pix) - src_y;
+-                g_debug("orig src: x=%d, y=%d, w=%d, h=%d",
+-                        src_x, src_y, src_w, src_h );
+-
+-                src_pix = gdk_pixbuf_new_subpixbuf( pix, src_x, src_y,  src_w, src_h );
+-                scaled_pix = gdk_pixbuf_scale_simple( src_pix, rect.width, rect.height, interp_type );
+-                g_object_unref( src_pix );
+-                src_pix = scaled_pix;
+-
+-                src_x = 0;
+-                src_y = 0;
+-            }
+-
+-            if( G_LIKELY(src_pix) )
+-            {
+-                gdk_draw_pixbuf( widget->window,
+-                                widget->style->fg_gc[GTK_STATE_NORMAL],
+-                                src_pix,
+-                                src_x, src_y,
+-                                dest_x, dest_y,
+-                                rect.width, rect.height,
+-                                GDK_RGB_DITHER_NORMAL, 0, 0 );
+-                g_object_unref( src_pix );
+-            }
+-#endif
+         }
+         g_free( rects );
+ 
+@@ -525,28 +466,29 @@ void paint( ImageView* iv, GdkRectangle* invalid_rect, GdkInterpType type )
+     if( ! gdk_rectangle_intersect( invalid_rect, &iv->img_area, &rect ) )
+         return;
+ 
+-    int dest_x = rect.x;
+-    int dest_y = rect.y;
+-
+-    rect.x -= iv->img_area.x;
+-    rect.y -= iv->img_area.y;
++    int dest_x;
++    int dest_y;
+ 
+     GdkPixbuf* src_pix = NULL;
+-    int src_x, src_y;
+     if( iv->scale == 1.0 )  // original size
+     {
+         src_pix = (GdkPixbuf*)g_object_ref( iv->pix );
+-        src_x = rect.x;
+-        src_y = rect.y;
++        dest_x = iv->img_area.x;
++        dest_y = iv->img_area.y;
+     }
+     else    // scaling is needed
+     {
++        dest_x = rect.x;
++        dest_y = rect.y;
++
++        rect.x -= iv->img_area.x;
++        rect.y -= iv->img_area.y;
++
+         GdkPixbuf* scaled_pix = NULL;
+-        int src_w, src_h;
+-        src_x = (int)floor( ((gdouble)rect.x) / iv->scale + 0.5 );
+-        src_y = (int)floor( ((gdouble)rect.y) / iv->scale + 0.5 );
+-        src_w = (int)floor( ((gdouble)rect.width) / iv->scale + 0.5 );
+-        src_h = (int)floor( ((gdouble)rect.height) / iv->scale + 0.5 );
++        int src_x = (int)floor( ((gdouble)rect.x) / iv->scale + 0.5 );
++        int src_y = (int)floor( ((gdouble)rect.y) / iv->scale + 0.5 );
++        int src_w = (int)floor( ((gdouble)rect.width) / iv->scale + 0.5 );
++        int src_h = (int)floor( ((gdouble)rect.height) / iv->scale + 0.5 );
+         if( src_y > gdk_pixbuf_get_height( iv->pix ) )
+             src_y = gdk_pixbuf_get_height( iv->pix );
+         if( src_x + src_w > gdk_pixbuf_get_width( iv->pix ) )
+@@ -564,23 +506,11 @@ void paint( ImageView* iv, GdkRectangle* invalid_rect, GdkInterpType type )
+             src_pix = scaled_pix;
+         }
+ 
+-        src_x = 0;
+-        src_y = 0;
+     }
+ 
+     if( G_LIKELY(src_pix) )
+     {
+         GtkWidget* widget = (GtkWidget*)iv;
+-/*
+-        gdk_draw_pixbuf( widget->window,
+-                         widget->style->fg_gc[GTK_STATE_NORMAL],
+-                         src_pix,
+-                         src_x, src_y,
+-                         dest_x, dest_y,
+-                         rect.width, rect.height,
+-                         GDK_RGB_DITHER_NORMAL, 0, 0 );
+-*/
+-        // New function with cairo
+         cairo_t *cr = gdk_cairo_create (gtk_widget_get_window(widget));
+         gdk_cairo_set_source_pixbuf (cr, src_pix, dest_x, dest_y);
+         cairo_paint (cr);
+-- 
+1.7.4.1
+




More information about the arch-commits mailing list