diff src/image.c @ 25:0c3b353b666e

Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net> * image.c: Connect to 'zoom' signal of pixbuf-renderer and notify listener to update. Fix delay flip by listening for 'render_complete'. * pixbuf-renderer.[ch]: Add complete property and and emit a 'render-complete' signal when changing complete back to TRUE. * view_dir_tree.c (vdtree_row_expanded): Populate a folder node whenever it is expanded. ##### 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 Sat, 26 Mar 2005 03:50:35 +0000
parents 104e34f9ab1f
children acd9885ebd78
line wrap: on
line diff
--- a/src/image.c	Wed Mar 23 05:29:45 2005 +0000
+++ b/src/image.c	Sat Mar 26 03:50:35 2005 +0000
@@ -76,6 +76,13 @@
 	if (imd->func_update) imd->func_update(imd, imd->data_update);
 }
 
+static void image_zoom_cb(PixbufRenderer *pr, gdouble zoom, gpointer data)
+{
+	ImageWindow *imd = data;
+
+	image_update_util(imd);
+}
+
 static void image_complete_util(ImageWindow *imd, gint preload)
 {
 	if (imd->il && image_get_pixbuf(imd) != image_loader_get_pixbuf(imd->il)) return;
@@ -88,6 +95,13 @@
 	if (imd->func_complete) imd->func_complete(imd, preload, imd->data_complete);
 }
 
+static void image_render_complete_cb(PixbufRenderer *pr, gpointer data)
+{
+	ImageWindow *imd = data;
+
+	image_complete_util(imd, FALSE);
+}
+
 static void image_new_util(ImageWindow *imd)
 {
 	if (imd->func_new) imd->func_new(imd, imd->data_new);
@@ -539,6 +553,7 @@
 	if (imd->il) return FALSE;
 
 	imd->completed = FALSE;
+	g_object_set(G_OBJECT(imd->pr), "complete", FALSE, NULL);
 
 	if (image_post_buffer_get(imd))
 		{
@@ -1411,6 +1426,11 @@
 	g_signal_connect(G_OBJECT(imd->pr), "destroy",
 			 G_CALLBACK(image_destroy_cb), imd);
 
+	g_signal_connect(G_OBJECT(imd->pr), "zoom",
+			 G_CALLBACK(image_zoom_cb), imd);
+	g_signal_connect(G_OBJECT(imd->pr), "render_complete",
+			 G_CALLBACK(image_render_complete_cb), imd);
+
 	return imd;
 }