changeset 1289:deb0876c29d2

force at least one idle call before writting metadata (without this the exit_program_write_metadata_cb could be called before the exit_program function finished)
author nadvornik
date Sat, 07 Feb 2009 21:03:11 +0000
parents 10073464e6aa
children 0c918f8b1f51
files src/utilops.c
diffstat 1 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/utilops.c	Sat Feb 07 19:01:21 2009 +0000
+++ b/src/utilops.c	Sat Feb 07 21:03:11 2009 +0000
@@ -590,8 +590,16 @@
 {
 	UtilityData *ud = data;
 
-	/* this is removed when ud is destroyed */
-	if (ud->perform_idle_id == -1) ud->perform_idle_id = g_idle_add(file_util_perform_ci_internal, ud);
+	if (ud->perform_idle_id == -1) 
+		{
+		/* this function was called directly
+		   just setup idle callback and wait until we are called again
+		*/
+		
+		/* this is removed when ud is destroyed */
+		ud->perform_idle_id = g_idle_add(file_util_perform_ci_internal, ud);
+		return TRUE;
+		}
 
 	g_assert(ud->flist);