summaryrefslogtreecommitdiff
path: root/community/gpicview/fix-scrolling.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/gpicview/fix-scrolling.patch')
-rw-r--r--community/gpicview/fix-scrolling.patch149
1 files changed, 0 insertions, 149 deletions
diff --git a/community/gpicview/fix-scrolling.patch b/community/gpicview/fix-scrolling.patch
deleted file mode 100644
index 9323055ad..000000000
--- a/community/gpicview/fix-scrolling.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-From 88e76ee77d7271820dfad4b66ea1ca892e1a1ae0 Mon Sep 17 00:00:00 2001
-From: Vadim Ushakov <igeekless@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
-