summaryrefslogtreecommitdiff
path: root/gtk/gtkfilesystemunix.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@ximian.com>2004-03-15 23:15:31 +0000
committerFederico Mena Quintero <federico@src.gnome.org>2004-03-15 23:15:31 +0000
commit7cd0c2686dbcc2fe318e78d99d7b53cde621b2a4 (patch)
treef752ad144ae75408768c9984cabeb99acd101890 /gtk/gtkfilesystemunix.c
parent5d2b6bc1b646d9a73b5aca046c538672b3a44668 (diff)
downloadgtk+-7cd0c2686dbcc2fe318e78d99d7b53cde621b2a4.tar.gz
Only hide the "create folder" button in OPEN mode; all the others should
2004-03-15 Federico Mena Quintero <federico@ximian.com> * gtk/gtkfilechooserdefault.c (update_appearance): Only hide the "create folder" button in OPEN mode; all the others should show it it. (get_paths_foreach): Handle the editable row. * gtk/gtkfilesystemunix.c (gtk_file_system_unix_create_folder): Force a re-get of the folder so that the new directory gets added to its hash table of file info.
Diffstat (limited to 'gtk/gtkfilesystemunix.c')
-rw-r--r--gtk/gtkfilesystemunix.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/gtk/gtkfilesystemunix.c b/gtk/gtkfilesystemunix.c
index 5a6d6cf0b0..01528ce533 100644
--- a/gtk/gtkfilesystemunix.c
+++ b/gtk/gtkfilesystemunix.c
@@ -501,12 +501,31 @@ gtk_file_system_unix_create_folder (GtkFileSystem *file_system,
folder_unix = g_hash_table_lookup (system_unix->folder_hash, parent);
if (folder_unix)
{
+ GtkFileInfoType types;
+ GtkFilePath *parent_path;
GSList *paths;
+ GtkFileFolder *folder;
- paths = g_slist_append (NULL, (GtkFilePath *) path);
- g_signal_emit_by_name (folder_unix, "files-added", paths);
- g_slist_free (paths);
+ /* This is sort of a hack. We re-get the folder, to ensure that the
+ * newly-created directory gets read into the folder's info hash table.
+ */
+
+ types = folder_unix->types;
+
+ parent_path = gtk_file_path_new_dup (parent);
+ folder = gtk_file_system_get_folder (file_system, parent_path, types, NULL);
+ gtk_file_path_free (parent_path);
+
+ if (folder)
+ {
+ paths = g_slist_append (NULL, (GtkFilePath *) path);
+ g_signal_emit_by_name (folder, "files-added", paths);
+ g_slist_free (paths);
+ g_object_unref (folder);
+ }
}
+
+ g_free (parent);
}
return TRUE;