[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gEDA-dev: [PATCH] Make recent files code and dialog positions codeuse gschem_atexit
---
gschem/include/prototype.h | 2 +-
gschem/src/gschem.c | 1 +
gschem/src/gschem_dialog.c | 6 ++++--
gschem/src/x_menus.c | 4 +++-
gschem/src/x_window.c | 1 -
5 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/gschem/include/prototype.h b/gschem/include/prototype.h
index f79c4ef..efdbe77 100644
--- a/gschem/include/prototype.h
+++ b/gschem/include/prototype.h
@@ -834,7 +834,7 @@ void x_menus_sensitivity(TOPLEVEL *w_current, const char *buf, int flag);
void x_menus_popup_sensitivity(TOPLEVEL *w_current, const char *buf, int flag);
void x_menu_attach_recent_files_submenu(TOPLEVEL *w_current);
void recent_files_load();
-void recent_files_save();
+void recent_files_save(gpointer user_data);
void recent_files_add(const char *filename);
#if !GLIB_CHECK_VERSION(2,8,0)
gboolean g_file_set_contents(const gchar *filename, const gchar *contents,
diff --git a/gschem/src/gschem.c b/gschem/src/gschem.c
index c9c8dbb..a97c2f9 100644
--- a/gschem/src/gschem.c
+++ b/gschem/src/gschem.c
@@ -244,6 +244,7 @@ void main_prog(void *closure, int argc, char *argv[])
/* Load recent files list. This must be done
* before calling x_window_setup(). */
recent_files_load();
+ gschem_atexit(recent_files_save, NULL);
/* At end, complete set up of window. */
colormap = gdk_colormap_get_system ();
diff --git a/gschem/src/gschem_dialog.c b/gschem/src/gschem_dialog.c
index 572795d..deeb603 100644
--- a/gschem/src/gschem_dialog.c
+++ b/gschem/src/gschem_dialog.c
@@ -51,8 +51,10 @@ static GKeyFile *dialog_geometry = NULL;
*
* \par Function Description
* This is called at program exit to save all window geometry data into a file
+ *
+ * \param [in] user_data unused
*/
-static void save_geometry_to_file()
+static void save_geometry_to_file(gpointer user_data)
{
gchar *data, *file;
@@ -119,7 +121,7 @@ static void restore_geometry (GschemDialog *dialog)
dialog_geometry = g_key_file_new();
/* Remember to save data on program exit */
- atexit(save_geometry_to_file);
+ gschem_atexit(save_geometry_to_file, NULL);
if (!g_file_test (file, G_FILE_TEST_EXISTS)) {
gchar *dir = g_build_filename (g_get_home_dir (), ".gEDA", NULL);
diff --git a/gschem/src/x_menus.c b/gschem/src/x_menus.c
index 2302cf5..7d63a21 100644
--- a/gschem/src/x_menus.c
+++ b/gschem/src/x_menus.c
@@ -543,8 +543,10 @@ static void recent_files_create_empty()
}
/*! \brief Save the list of recent files to RECENT_FILES_STORE.
+ *
+ * \param [in] user_data unused
*/
-void recent_files_save()
+void recent_files_save(gpointer user_data)
{
gchar **files = NULL;
int num = 0;
diff --git a/gschem/src/x_window.c b/gschem/src/x_window.c
index 2d22603..e388665 100644
--- a/gschem/src/x_window.c
+++ b/gschem/src/x_window.c
@@ -829,7 +829,6 @@ void x_window_close(TOPLEVEL *w_current)
/* just closed last window, so quit */
if (last_window) {
- recent_files_save();
gschem_quit();
}
--
1.5.2.1
_______________________________________________
geda-dev mailing list
geda-dev@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev