diff options
author | Anders Carlsson <andersca@gnu.org> | 2002-01-30 01:17:33 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@src.gnome.org> | 2002-01-30 01:17:33 +0000 |
commit | 89c5defa0b9d3eee30ec592945d06d4440c3beed (patch) | |
tree | de3a73a5058cf196678f14133465ca1093fa0a14 | |
parent | 4287d06c7a12c61647431caf9fb38470a7ad7d3b (diff) | |
download | nautilus-89c5defa0b9d3eee30ec592945d06d4440c3beed.tar.gz |
Do a sync check for a .directory file before scheduling an async load of
2002-01-30 Anders Carlsson <andersca@gnu.org>
* libnautilus-private/nautilus-directory-async.c
(make_dot_directory_uri): Do a sync check for a .directory file before
scheduling an async load of the file.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | libnautilus-private/nautilus-directory-async.c | 14 |
2 files changed, 17 insertions, 3 deletions
@@ -1,3 +1,9 @@ +2002-01-30 Anders Carlsson <andersca@gnu.org> + + * libnautilus-private/nautilus-directory-async.c + (make_dot_directory_uri): Do a sync check for a .directory file before + scheduling an async load of the file. + 2002-01-28 Remi Cohen-Scali <remi@cohen-scali.com> * libnautilus-private/nautilus-program-choosing.c diff --git a/libnautilus-private/nautilus-directory-async.c b/libnautilus-private/nautilus-directory-async.c index 5d768246d..49506edbd 100644 --- a/libnautilus-private/nautilus-directory-async.c +++ b/libnautilus-private/nautilus-directory-async.c @@ -2874,9 +2874,17 @@ make_dot_directory_uri (const char *uri) if (vfs_uri == NULL) { return NULL; } - - dot_dir_vfs_uri = gnome_vfs_uri_append_file_name (vfs_uri, ".directory"); - dot_directory_uri = gnome_vfs_uri_to_string (dot_dir_vfs_uri, GNOME_VFS_URI_HIDE_NONE); + + /* This does sync I/O but is allowed here since otherwise nautilus won't start showing the + * directory's contents before all the scheduled calls of "look for .directory file" have been + * finished. + */ + if (gnome_vfs_uri_is_local (dot_dir_vfs_uri) && gnome_vfs_uri_exists (dot_dir_vfs_uri)) { + dot_directory_uri = gnome_vfs_uri_to_string (dot_dir_vfs_uri, GNOME_VFS_URI_HIDE_NONE); + } + else { + dot_directory_uri = NULL; + } gnome_vfs_uri_unref (vfs_uri); gnome_vfs_uri_unref (dot_dir_vfs_uri); |