Mercurial > geeqie
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; }