Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
Diffstat (limited to 'shell')
-rw-r--r--shell/ev-application.c12
-rw-r--r--shell/ev-application.h5
-rw-r--r--shell/ev-window.c7
3 files changed, 23 insertions, 1 deletions
diff --git a/shell/ev-application.c b/shell/ev-application.c
index e633ce4..8802f68 100644
--- a/shell/ev-application.c
+++ b/shell/ev-application.c
@@ -304,7 +304,9 @@ ev_application_shutdown (EvApplication *application)
application->recent_model = NULL;
}
+ g_free (application->last_chooser_uri);
g_object_unref (application);
+
gtk_main_quit ();
}
@@ -376,4 +378,14 @@ void ev_application_save_toolbars_model (EvApplication *application)
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;
+}
diff --git a/shell/ev-application.h b/shell/ev-application.h
index 8dcd2f7..bad967d 100644
--- a/shell/ev-application.h
+++ b/shell/ev-application.h
@@ -53,6 +53,8 @@ struct _EvApplication {
EggToolbarsModel *toolbars_model;
EggRecentModel *recent_model;
+
+ gchar *last_chooser_uri;
};
struct _EvApplicationClass {
@@ -81,6 +83,9 @@ GList *ev_application_get_windows (EvApplication *application);
EggToolbarsModel *ev_application_get_toolbars_model (EvApplication *application);
void ev_application_save_toolbars_model (EvApplication *application);
EggRecentModel *ev_application_get_recent_model (EvApplication *application);
+void ev_application_set_chooser_uri (EvApplication *application,
+ gchar *uri);
+const gchar *ev_application_get_chooser_uri (EvApplication *application);
G_END_DECLS
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 7e6a1bc..a3a4457 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -1093,6 +1093,8 @@ file_open_dialog_response_cb (GtkWidget *chooser,
g_slist_foreach (uris, (GFunc)g_free, NULL);
g_slist_free (uris);
}
+ ev_application_set_chooser_uri (EV_APP,
+ gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (chooser)));
gtk_widget_destroy (chooser);
}
@@ -1113,7 +1115,10 @@ ev_window_cmd_file_open (GtkAction *action, EvWindow *window)
ev_document_types_add_filters (chooser, NULL);
gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (chooser), TRUE);
gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (chooser), FALSE);
-
+ if (ev_application_get_chooser_uri (EV_APP) != NULL)
+ gtk_file_chooser_set_uri (GTK_FILE_CHOOSER (chooser),
+ ev_application_get_chooser_uri (EV_APP));
+
g_signal_connect (chooser, "response",
G_CALLBACK (file_open_dialog_response_cb),
window);