summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2008-10-17 17:24:33 +0000
committerAlexander Larsson <alexl@src.gnome.org>2008-10-17 17:24:33 +0000
commit2b87637c6b03961281c10e3cc9daad78ce0a3d7a (patch)
treeae032bc3bfb00fecac2bc770859b8a44b427ae3e
parent3c16c22c61ade2f2d0322f05e9a3bb9c75172f73 (diff)
downloadnautilus-2b87637c6b03961281c10e3cc9daad78ce0a3d7a.tar.gz
Merged from trunk:
2008-10-17 Alexander Larsson <alexl@redhat.com> Merged from trunk: * libnautilus-private/nautilus-bookmark.c: (bookmark_file_changed_callback): Don't immediately recreate NautilusFile for the bookmark when the file is deleted, as this can cause loops if the file is monitored. See https://bugzilla.redhat.com/show_bug.cgi?id=465479 svn path=/branches/gnome-2-24/; revision=14735
-rw-r--r--ChangeLog11
-rw-r--r--libnautilus-private/nautilus-bookmark.c12
2 files changed, 20 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index bee967752..2842f2093 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,17 @@
Merged from trunk:
+ * libnautilus-private/nautilus-bookmark.c:
+ (bookmark_file_changed_callback):
+ Don't immediately recreate NautilusFile for the
+ bookmark when the file is deleted, as this can
+ cause loops if the file is monitored.
+ See https://bugzilla.redhat.com/show_bug.cgi?id=465479
+
+2008-10-17 Alexander Larsson <alexl@redhat.com>
+
+ Merged from trunk:
+
* src/nautilus-window-manage-views.c
(nautilus_window_slot_open_location_full):
Don't unref NULL, which can happen if !do_load_location
diff --git a/libnautilus-private/nautilus-bookmark.c b/libnautilus-private/nautilus-bookmark.c
index f7ad47bed..361857573 100644
--- a/libnautilus-private/nautilus-bookmark.c
+++ b/libnautilus-private/nautilus-bookmark.c
@@ -391,13 +391,19 @@ bookmark_file_changed_callback (NautilusFile *file, NautilusBookmark *bookmark)
if (nautilus_file_is_gone (file) ||
nautilus_file_is_in_trash (file)) {
/* The file we were monitoring has been trashed, deleted,
- * or moved in a way that we didn't notice. Make
+ * or moved in a way that we didn't notice. We should make
* a spanking new NautilusFile object for this
* location so if a new file appears in this place
- * we will notice.
+ * we will notice. However, we can't immediately do so
+ * because creating a new NautilusFile directly as a result
+ * of noticing a file goes away may trigger i/o on that file
+ * again, noticeing it is gone, leading to a loop.
+ * So, the new NautilusFile is created when the bookmark
+ * is used again. However, this is not really a problem, as
+ * we don't want to change the icon or anything about the
+ * bookmark just because its not there anymore.
*/
nautilus_bookmark_disconnect_file (bookmark);
- should_emit_appearance_changed_signal = TRUE;
} else if (nautilus_bookmark_update_icon (bookmark)) {
/* File hasn't gone away, but it has changed
* in a way that affected its icon.