summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Sullivan <sullivan@src.gnome.org>2000-10-03 21:02:19 +0000
committerJohn Sullivan <sullivan@src.gnome.org>2000-10-03 21:02:19 +0000
commitc612c157ee74c904b30bdcc90dd15275ba448fba (patch)
tree9381311c461d96dfdfb18c0f322581f275339d66
parentadb5d03cb194aa7cc22ab302c844bbca192669ae (diff)
downloadnautilus-c612c157ee74c904b30bdcc90dd15275ba448fba.tar.gz
Fixed bug 3379 (crash leaving web page)
* libnautilus-extensions/nautilus-directory-async.c: (directory_load_done): When directory load returns an error, clear unconfirmed bit on all files in that directory so they won't be marked gone later. Fixed bug 3421 (web page with blank HTML title causes blank title in Nautilus) * components/mozilla/nautilus-mozilla-content-view.c: (mozilla_title_changed_callback): Don't call nautilus_view_set_title if the HTML title is NULL or "".
-rw-r--r--ChangeLog16
-rw-r--r--components/mozilla/nautilus-mozilla-content-view.c6
-rw-r--r--libnautilus-extensions/nautilus-directory-async.c14
-rw-r--r--libnautilus-private/nautilus-directory-async.c14
4 files changed, 48 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 71594906d..713bafbbb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2000-10-03 John Sullivan <sullivan@eazel.com>
+
+ Fixed bug 3379 (crash leaving web page)
+
+ * libnautilus-extensions/nautilus-directory-async.c:
+ (directory_load_done): When directory load returns an
+ error, clear unconfirmed bit on all files in that directory
+ so they won't be marked gone later.
+
+ Fixed bug 3421 (web page with blank HTML title causes blank
+ title in Nautilus)
+
+ * components/mozilla/nautilus-mozilla-content-view.c:
+ (mozilla_title_changed_callback): Don't call nautilus_view_set_title
+ if the HTML title is NULL or "".
+
2000-10-03 Pavel Cisler <pavel@eazel.com>
Work on 2036 - drawing glitches in ListView.
diff --git a/components/mozilla/nautilus-mozilla-content-view.c b/components/mozilla/nautilus-mozilla-content-view.c
index ef88eaf71..d4a1c9b31 100644
--- a/components/mozilla/nautilus-mozilla-content-view.c
+++ b/components/mozilla/nautilus-mozilla-content-view.c
@@ -617,8 +617,10 @@ mozilla_title_changed_callback (GtkMozEmbed *mozilla, gpointer user_data)
new_title = gtk_moz_embed_get_title (GTK_MOZ_EMBED (view->details->mozilla));
- nautilus_view_set_title (view->details->nautilus_view,
- new_title);
+ if (new_title != NULL && strcmp (new_title, "") != 0) {
+ nautilus_view_set_title (view->details->nautilus_view,
+ new_title);
+ }
g_free (new_title);
}
diff --git a/libnautilus-extensions/nautilus-directory-async.c b/libnautilus-extensions/nautilus-directory-async.c
index a250c58f9..c7038df5a 100644
--- a/libnautilus-extensions/nautilus-directory-async.c
+++ b/libnautilus-extensions/nautilus-directory-async.c
@@ -974,10 +974,24 @@ static void
directory_load_done (NautilusDirectory *directory,
GnomeVFSResult result)
{
+ GList *node;
+
cancel_directory_load (directory);
directory->details->directory_loaded = TRUE;
directory->details->directory_loaded_sent_notification = FALSE;
+ if (result != GNOME_VFS_OK) {
+ /* The load did not complete successfully. This means
+ * we don't know the status of the files in this directory.
+ * We clear the unconfirmed bit on each file here so that
+ * they won't be marked "gone" later -- we don't know enough
+ * about them to know whether they are really gone.
+ */
+ for (node = directory->details->files; node != NULL; node = node->next) {
+ NAUTILUS_FILE (node->data)->details->unconfirmed = FALSE;
+ }
+ }
+
/* Call the idle function right away. */
if (directory->details->dequeue_pending_idle_id != 0) {
gtk_idle_remove (directory->details->dequeue_pending_idle_id);
diff --git a/libnautilus-private/nautilus-directory-async.c b/libnautilus-private/nautilus-directory-async.c
index a250c58f9..c7038df5a 100644
--- a/libnautilus-private/nautilus-directory-async.c
+++ b/libnautilus-private/nautilus-directory-async.c
@@ -974,10 +974,24 @@ static void
directory_load_done (NautilusDirectory *directory,
GnomeVFSResult result)
{
+ GList *node;
+
cancel_directory_load (directory);
directory->details->directory_loaded = TRUE;
directory->details->directory_loaded_sent_notification = FALSE;
+ if (result != GNOME_VFS_OK) {
+ /* The load did not complete successfully. This means
+ * we don't know the status of the files in this directory.
+ * We clear the unconfirmed bit on each file here so that
+ * they won't be marked "gone" later -- we don't know enough
+ * about them to know whether they are really gone.
+ */
+ for (node = directory->details->files; node != NULL; node = node->next) {
+ NAUTILUS_FILE (node->data)->details->unconfirmed = FALSE;
+ }
+ }
+
/* Call the idle function right away. */
if (directory->details->dequeue_pending_idle_id != 0) {
gtk_idle_remove (directory->details->dequeue_pending_idle_id);