]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-application.c
Save last uri in file chooser dialog. Fix for the bug #327950.
[evince.git] / shell / ev-application.c
index 1b64c3dbc7701616470dd399faca4dc64cb4fa9e..8802f68af267271bb3324a7605353565ba1cc481 100644 (file)
@@ -91,9 +91,6 @@ ev_application_register_service (EvApplication *application)
        dbus_g_object_type_install_info (EV_TYPE_APPLICATION,
                                         &dbus_glib_ev_application_object_info);
 #endif
        dbus_g_object_type_install_info (EV_TYPE_APPLICATION,
                                         &dbus_glib_ev_application_object_info);
 #endif
-#ifdef ENABLE_COMICS
-       GtkFileFilter *comics_filter;
-#endif
 
        dbus_g_connection_register_g_object (connection,
                                             "/org/gnome/evince/Evince",
 
        dbus_g_connection_register_g_object (connection,
                                             "/org/gnome/evince/Evince",
@@ -217,7 +214,7 @@ ev_application_get_uri_window (EvApplication *application, const char *uri)
                        EvWindow *window = EV_WINDOW (l->data);
                        const char *window_uri = ev_window_get_uri (window);
 
                        EvWindow *window = EV_WINDOW (l->data);
                        const char *window_uri = ev_window_get_uri (window);
 
-                       if (window_uri && strcmp (window_uri, uri) == 0) {
+                       if (window_uri && strcmp (window_uri, uri) == 0 && !ev_window_is_empty (window)) {
                                uri_window = window;
                                break;
                        }
                                uri_window = window;
                                break;
                        }
@@ -307,7 +304,9 @@ ev_application_shutdown (EvApplication *application)
                application->recent_model = NULL;
        }
 
                application->recent_model = NULL;
        }
 
+       g_free (application->last_chooser_uri);
        g_object_unref (application);
        g_object_unref (application);
+       
        gtk_main_quit ();
 }
 
        gtk_main_quit ();
 }
 
@@ -379,4 +378,14 @@ void ev_application_save_toolbars_model (EvApplication *application)
                                 application->toolbars_file, "1.0");
 }
 
                                 application->toolbars_file, "1.0");
 }
 
+void ev_application_set_chooser_uri (EvApplication *application, gchar *uri)
+{
+       g_free (application->last_chooser_uri);
+       application->last_chooser_uri = g_strdup (uri);
+}
+
+const gchar* ev_application_get_chooser_uri (EvApplication *application)
+{
+       return application->last_chooser_uri;
+}