summaryrefslogtreecommitdiff
path: root/gtk/gtkfilechooserdefault.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@ximian.com>2005-10-19 16:25:42 +0000
committerFederico Mena Quintero <federico@src.gnome.org>2005-10-19 16:25:42 +0000
commit647ba5b40dae93627846cc7ad3d077a8109d04b8 (patch)
treee543ad9ca4bf72aad0d519904994d3eaf93393d4 /gtk/gtkfilechooserdefault.c
parentfcacded8ff3a23560feba04199005f81aa6a8a74 (diff)
downloadgtk+-647ba5b40dae93627846cc7ad3d077a8109d04b8.tar.gz
Fixes bug #317999:
2005-10-18 Federico Mena Quintero <federico@ximian.com> Fixes bug #317999: * tests/autotestfilechooser.c (test_button_folder_states_for_action): Test that we have either $cwd or the explicitly-set folder. (test_reload_sequence): Likewise. * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_get_current_folder): If our reload_state is RELOAD_EMPTY, return a GtkFilePath corresponding to $cwd.
Diffstat (limited to 'gtk/gtkfilechooserdefault.c')
-rw-r--r--gtk/gtkfilechooserdefault.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
index dc1649462b..6eb561667b 100644
--- a/gtk/gtkfilechooserdefault.c
+++ b/gtk/gtkfilechooserdefault.c
@@ -86,7 +86,7 @@
#endif
/* Profiling stuff */
-#undef PROFILE_FILE_CHOOSER
+#define PROFILE_FILE_CHOOSER
#ifdef PROFILE_FILE_CHOOSER
@@ -5415,6 +5415,21 @@ gtk_file_chooser_default_get_current_folder (GtkFileChooser *chooser)
{
GtkFileChooserDefault *impl = GTK_FILE_CHOOSER_DEFAULT (chooser);
+ if (impl->reload_state == RELOAD_EMPTY)
+ {
+ char *current_working_dir;
+ GtkFilePath *path;
+
+ /* We are unmapped, or we had an error while loading the last folder. We'll return
+ * the $cwd since once we get (re)mapped, we'll load $cwd anyway unless the caller
+ * explicitly calls set_current_folder() on us.
+ */
+ current_working_dir = g_get_current_dir ();
+ path = gtk_file_system_filename_to_path (impl->file_system, current_working_dir);
+ g_free (current_working_dir);
+ return path;
+ }
+
return gtk_file_path_copy (impl->current_folder);
}