diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 52 |
1 files changed, 31 insertions, 21 deletions
@@ -33,7 +33,6 @@ #include "fr-init.h" -GList *WindowList = NULL; gint ForceDirectoryCreation; static char **remaining_args; @@ -241,9 +240,11 @@ activate_cb (GApplication *application) { GList *link; - for (link = WindowList; link; link = link->next) { - FrWindow *window = link->data; - gtk_widget_show (GTK_WIDGET (window)); + for (link = gtk_application_get_windows (GTK_APPLICATION (application)); + link != NULL; + link = link->next) + { + gtk_widget_show (GTK_WIDGET (link->data)); } } @@ -253,9 +254,9 @@ fr_save_state (EggSMClient *client, GKeyFile *state, gpointer user_data) { /* discard command is automatically set by EggSMClient */ - GList *window; - const char *argv[2] = { NULL }; - guint i; + const char *argv[2] = { NULL }; + GApplication *application; + guint i = 0; /* restart command */ argv[0] = program_argv0; @@ -264,21 +265,30 @@ fr_save_state (EggSMClient *client, GKeyFile *state, gpointer user_data) egg_sm_client_set_restart_command (client, 1, argv); /* state */ - for (window = WindowList, i = 0; window; window = window->next, i++) { - FrWindow *session = window->data; - gchar *key; - - key = g_strdup_printf ("archive%d", i); - if ((session->archive == NULL) || (session->archive->file == NULL)) { - g_key_file_set_string (state, "Session", key, ""); - } else { - gchar *uri; - - uri = g_file_get_uri (session->archive->file); - g_key_file_set_string (state, "Session", key, uri); - g_free (uri); + application = g_application_get_default (); + if (application != NULL) { + GList *window; + + for (window = gtk_application_get_windows (GTK_APPLICATION (application)), i = 0; + window != NULL; + window = window->next, i++) + { + FrWindow *session = window->data; + gchar *key; + + key = g_strdup_printf ("archive%d", i); + if ((session->archive == NULL) || (session->archive->file == NULL)) { + g_key_file_set_string (state, "Session", key, ""); + } + else { + gchar *uri; + + uri = g_file_get_uri (session->archive->file); + g_key_file_set_string (state, "Session", key, uri); + g_free (uri); + } + g_free (key); } - g_free (key); } g_key_file_set_integer (state, "Session", "archives", i); |