SF.net SVN: geany: [862] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Tue Oct 3 11:21:45 UTC 2006


Revision: 862
          http://svn.sourceforge.net/geany/?rev=862&view=rev
Author:   eht16
Date:     2006-10-03 04:21:36 -0700 (Tue, 03 Oct 2006)

Log Message:
-----------
Save configuration(i.e. list of open files) as late as possible and save the filetype build commands first shortly before quitting.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/callbacks.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-10-02 15:22:29 UTC (rev 861)
+++ trunk/ChangeLog	2006-10-03 11:21:36 UTC (rev 862)
@@ -1,3 +1,10 @@
+2006-10-03  Enrico Tröger  <enrico.troeger at uvena.de>
+
+ * src/callbacks.c: Save configuration(i.e. list of open files) as late
+                    as possible and save the filetype build commands
+                    first shortly before quitting.
+
+
 2006-10-02  Nick Treleaven  <nick.treleaven at btinternet.com>
 
  * src/templates.c:

Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c	2006-10-02 15:22:29 UTC (rev 861)
+++ trunk/src/callbacks.c	2006-10-03 11:21:36 UTC (rev 862)
@@ -87,6 +87,7 @@
 #endif
 
 	keybindings_free();
+	filetypes_save_commands();
 	filetypes_free_types();
 	styleset_free_styles();
 	templates_free_templates();
@@ -162,10 +163,6 @@
 {
 	app->quitting = TRUE;
 
-	// TODO: only save config if definitely quitting
-	configuration_save();
-	filetypes_save_commands();
-
 	if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(app->notebook)) > 0)
 	{
 		gint i;
@@ -181,21 +178,36 @@
 		}
 		if (has_dirty_editors)
 		{
-			if (on_close_all1_activate(NULL, NULL)) destroyapp(NULL, gdata);
+			// there is the chance that the user cancel the exit process while closing open
+			// files, so save the configuration(i.e. the list of open files) first
+			configuration_save();
+			if (on_close_all1_activate(NULL, NULL))
+			{
+				destroyapp(NULL, gdata);
+			}
 			else app->quitting = FALSE;
 		}
 		else
 		{
 			if (app->pref_main_confirm_exit)
 			{
+				// there is the chance that the user cancel the exit process while closing open
+				// files, so save the configuration(i.e. the list of open files) first
+				configuration_save();
 				if (dialogs_show_question_full(GTK_STOCK_QUIT, GTK_STOCK_CANCEL, NULL,
 					_("Do you really want to quit?")) && on_close_all1_activate(NULL, NULL))
+					{
 						destroyapp(NULL, gdata);
+					}
 				else app->quitting = FALSE;
 			}
 			else
 			{
-				if (on_close_all1_activate(NULL, NULL)) destroyapp(NULL, gdata);
+				if (on_close_all1_activate(NULL, NULL))
+				{
+					configuration_save();
+					destroyapp(NULL, gdata);
+				}
 				else app->quitting = FALSE;
 			}
 		}
@@ -206,11 +218,15 @@
 		{
 			if (dialogs_show_question_full(GTK_STOCK_QUIT, GTK_STOCK_CANCEL, NULL,
 				_("Do you really want to quit?")))
-					destroyapp(NULL, gdata);
+			{
+				configuration_save();
+				destroyapp(NULL, gdata);
+			}
 			else app->quitting = FALSE;
 		}
 		else
 		{
+			configuration_save();
 			destroyapp(NULL, gdata);
 		}
 	}
@@ -2258,7 +2274,7 @@
 	filetype *ft = user_data;
 
 	g_return_if_fail(ft != NULL);
-	
+
 	if (response == GTK_RESPONSE_ACCEPT)
 	{
 		const gchar *newstr;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list