From 49e8351958dc232070433e5624fe0df9c504fe85 Mon Sep 17 00:00:00 2001 From: Jesse van den Kieboom Date: Fri, 29 Sep 2006 12:26:16 +0000 Subject: [PATCH] * gnoemoe/gm-app.c: make sure the main view is destroyed (otherwise the main view still holds references to the opened worlds which then don't get properly finalized). Therefore not properly saving command input history etc. Added proper finalization on SIGINT * gnoemoe/gm-scripts.c: fixed indentation * gnoemoe/dialogs/gm-preferences-dialog.c: added color table saving when dialog gets destroyed --- gnoemoe/dialogs/gm-preferences-dialog.c | 1 + gnoemoe/gm-app.c | 25 +++++++++++-------------- gnoemoe/gm-scripts.c | 2 +- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/gnoemoe/dialogs/gm-preferences-dialog.c b/gnoemoe/dialogs/gm-preferences-dialog.c index 0869916..9b1868e 100644 --- a/gnoemoe/dialogs/gm-preferences-dialog.c +++ b/gnoemoe/dialogs/gm-preferences-dialog.c @@ -420,6 +420,7 @@ void on_gm_preferences_dialog_response(GtkDialog *dialog, gint response, gpointer user_data) { gm_options_save(gm_app_options(gm_app_instance())); + gm_color_table_save(gm_app_color_table(gm_app_instance())); gtk_widget_destroy(GTK_WIDGET(dialog)); g_object_unref(preferences->xml); diff --git a/gnoemoe/gm-app.c b/gnoemoe/gm-app.c index a793b59..3fa11b9 100644 --- a/gnoemoe/gm-app.c +++ b/gnoemoe/gm-app.c @@ -44,8 +44,7 @@ struct poptOption poptions[] = { GM_TYPE_APP, GmAppPrivate)) static void gm_app_destroy_worlds(GmApp *app); -static void on_signal_term(int signum); -static void on_signal_hup(int signum); +static void on_signal_quit(int signum); struct _GmAppPrivate { gchar *path; @@ -115,6 +114,9 @@ gm_app_get_property(GObject *object, guint prop_id, GValue *value, static void gm_app_finalize(GObject *object) { GmApp *app = GM_APP(object); + + if (GTK_IS_WIDGET(app->priv->view)) + gtk_widget_destroy(GTK_WIDGET(app->priv->view)); gnome_vfs_shutdown(); @@ -416,7 +418,7 @@ gm_app_initialize(GmApp *app) { } #ifdef HAVE_RUBY - app->priv->scripts = gm_scripts_new(); + app->priv->scripts = gm_scripts_new(); #endif gm_app_create_settings(app); @@ -487,8 +489,7 @@ gm_app_run(GmApp *app) { g_strfreev(wrlds); } - - signal(SIGINT, SIG_DFL); + gtk_main(); } @@ -628,8 +629,9 @@ main(int argc, char *argv[]) { application = gm_app_new(argc, argv); if (application) { - signal(SIGTERM, on_signal_term); - signal(SIGHUP, on_signal_hup); + signal(SIGTERM, on_signal_quit); + signal(SIGHUP, on_signal_quit); + signal(SIGINT, on_signal_quit); gm_app_run(application); g_object_unref(application); @@ -639,12 +641,7 @@ main(int argc, char *argv[]) { } /* Signal handlers */ -static void -on_signal_term(int signum) { - gtk_main_quit(); -} - -static void -on_signal_hup(int signum) { +static void +on_signal_quit(int signum) { gtk_main_quit(); } diff --git a/gnoemoe/gm-scripts.c b/gnoemoe/gm-scripts.c index 4071fc5..71dc295 100644 --- a/gnoemoe/gm-scripts.c +++ b/gnoemoe/gm-scripts.c @@ -173,7 +173,7 @@ gm_scripts_class_init(GmScriptsClass *klass) { void gm_scripts_rb_init(GmScriptsClass *klass) { - ruby_init(); + ruby_init(); gm_scripts_rb_world_class_init(); gm_scripts_rb_client_class_init();