diff src/pixbuf-renderer.c @ 29:8a8ec4b3e769

Sun Apr 3 00:36:22 2005 John Ellis <johne@verizon.net> * image.c (image_options_set): Only enable PixbufRenderer 'window_fit' when both the ImageWindow and global setting are both enabled. * pan-view.c (pan_window_image_scroll_notify_cb): Add call to gtk_adjustment_value_changed to fix performance hit when scrolling. * pixbuf-renderer.c: Set tile render_todo flags to RENDER_ALL when invalidating so that there is no chance it will be used with old data. Only emit 'scroll-notify' signal when the value or range changes. Fix copy of zoom value in pixbuf_renderer_move. ##### Note: GQview CVS on sourceforge is not always up to date, please use ##### ##### an offical release when making enhancements and translation updates. #####
author gqview
date Sun, 03 Apr 2005 05:46:47 +0000
parents 9c24765c2d3a
children c42544f31030
line wrap: on
line diff
--- a/src/pixbuf-renderer.c	Sat Apr 02 22:59:31 2005 +0000
+++ b/src/pixbuf-renderer.c	Sun Apr 03 05:46:47 2005 +0000
@@ -1766,7 +1766,7 @@
 		work = work->next;
 
 		it->render_done = TILE_RENDER_NONE;
-		it->render_todo = TILE_RENDER_NONE;
+		it->render_todo = TILE_RENDER_ALL;
 		it->blank = FALSE;
 
 		it->w = MIN(pr->tile_width, pr->width - it->x);
@@ -1798,7 +1798,7 @@
 		    it->y < y2 && it->y + it->h > y1)
 			{
 			it->render_done = TILE_RENDER_NONE;
-			it->render_todo = TILE_RENDER_NONE;
+			it->render_todo = TILE_RENDER_ALL;
 			}
 		}
 }
@@ -2371,7 +2371,6 @@
 		pr->x_scroll = 0;
 		pr->y_scroll = 0;
 
-		pr_scroll_notify_signal(pr);
 		return FALSE;
 		}
 
@@ -2396,8 +2395,6 @@
 		pr->y_scroll = CLAMP(pr->y_scroll, 0, pr->height - pr->vis_height);
 		}
 
-	pr_scroll_notify_signal(pr);
-
 	return (old_xs != pr->x_scroll || old_ys != pr->y_scroll);
 }
 
@@ -2609,6 +2606,7 @@
 	if (sized || clamped) pr_border_clear(pr);
 	pr_redraw(pr, redrawn);
 
+	pr_scroll_notify_signal(pr);
 	pr_zoom_signal(pr);
 	pr_update_signal(pr);
 }
@@ -2665,6 +2663,7 @@
 	pr_tile_sync(pr, pr->width, pr->height, FALSE);
 #endif
 
+	pr_scroll_notify_signal(pr);
 	pr_update_signal(pr);
 }
 
@@ -2715,6 +2714,8 @@
 	pr_scroll_clamp(pr);
 	if (pr->x_scroll == old_x && pr->y_scroll == old_y) return;
 
+	pr_scroll_notify_signal(pr);
+
 	if (pr->overlay_list)
 		{
 		gint new_x, new_y;
@@ -3097,7 +3098,7 @@
 		pr->source_tiles = source->source_tiles;
 		source->source_tiles = NULL;
 
-		pr_zoom_sync(pr, pr->zoom, TRUE, FALSE, TRUE, FALSE, 0, 0);
+		pr_zoom_sync(pr, source->zoom, TRUE, FALSE, TRUE, FALSE, 0, 0);
 		pr_redraw(pr, TRUE);
 		}
 	else