]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-window.c
Check for avail. EvWindows when quiting to handle the finalize better,
[evince.git] / shell / ev-window.c
index 0c8139a55846f4545cbc253026774395ba287a4e..c634a07b7149e9afdd0ea8e6932ddeb7c743ad76 100644 (file)
@@ -2745,14 +2745,23 @@ zoom_control_changed_cb (EphyZoomAction *action,
 static void
 ev_window_finalize (GObject *object)
 {
-       GList *windows = gtk_window_list_toplevels ();
+       gboolean empty = TRUE;
+       GList *list, *windows;
 
-       if (windows == NULL) {
-               ev_application_shutdown (EV_APP);
-       } else {
-               g_list_free (windows);
-       }
 
+       windows = gtk_window_list_toplevels ();
+
+       for (list = windows; list; list = list->next) {
+               if (EV_IS_WINDOW (list->data)) {
+                       empty = FALSE;
+                       break;
+               }
+       }
+       
+       if (empty)
+               ev_application_shutdown (EV_APP);
+       
+       g_list_free (windows);
        G_OBJECT_CLASS (ev_window_parent_class)->finalize (object);
 }