diff options
Diffstat (limited to 'community/gpicview/fix-scrolling.patch')
-rw-r--r-- | community/gpicview/fix-scrolling.patch | 149 |
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 - |