aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--lib/ephy-file-helpers.c24
-rw-r--r--src/popup-commands.c22
3 files changed, 30 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog
index 4581d7cd4..cb70924ae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,11 @@
-2007-04-24 Diego Escalante Urrelo <diegoe@gnome.org>
+2007-04-24 Diego Escalante Urrelo <diegoe@gnome.org>
+
+ * src/popup-commands.c:
+ * lib/ephy-file-helpers.c:
+ Avoid opening nautilus if downloads are done to Desktop. This re-fixes
+ bug #383698.
+
+2007-04-24 Diego Escalante Urrelo <diegoe@gnome.org>
* embed/ephy-embed-dialog.c:
Fix some strict-aliasing warnings.
diff --git a/lib/ephy-file-helpers.c b/lib/ephy-file-helpers.c
index 225a1af93..e34783d1f 100644
--- a/lib/ephy-file-helpers.c
+++ b/lib/ephy-file-helpers.c
@@ -1169,19 +1169,33 @@ gboolean
ephy_file_browse_to (const char *parameter,
guint32 user_time)
{
- GnomeVFSURI *uri, *parent_uri;
+ GnomeVFSURI *uri, *parent_uri, *desktop;
+ char *desktop_dir;
gboolean ret;
uri = gnome_vfs_uri_new (parameter);
parent_uri = gnome_vfs_uri_get_parent (uri);
- /* TODO find a way to make nautilus scroll to the actual file */
- ret = ephy_file_launch_handler ("x-directory/normal",
- gnome_vfs_uri_get_path (parent_uri),
- user_time);
+ desktop_dir = ephy_file_desktop_dir ();
+ desktop = gnome_vfs_uri_new (desktop_dir);
+ /* Don't do anything if destination is the desktop */
+ if (gnome_vfs_uri_equal (desktop, parent_uri))
+ {
+ ret = FALSE;
+ }
+ else
+ {
+ /* TODO find a way to make nautilus scroll to the actual file */
+ ret = ephy_file_launch_handler ("x-directory/normal",
+ gnome_vfs_uri_get_path (parent_uri),
+ user_time);
+ }
+
+ g_free (desktop_dir);
gnome_vfs_uri_unref (uri);
gnome_vfs_uri_unref (parent_uri);
+ gnome_vfs_uri_unref (desktop);
return ret;
}
diff --git a/src/popup-commands.c b/src/popup-commands.c
index 27f872e3a..4cc6ed4ce 100644
--- a/src/popup-commands.c
+++ b/src/popup-commands.c
@@ -175,32 +175,16 @@ save_property_url_completed_cb (EphyEmbedPersist *persist)
EPHY_EMBED_PERSIST_ASK_DESTINATION))
{
const char *dest;
- char *desktop_dir;
guint32 user_time;
- GnomeVFSURI *parent, *uri, *desktop;
user_time = ephy_embed_persist_get_user_time (persist);
dest = ephy_embed_persist_get_dest (persist);
- g_return_if_fail (dest != NULL);
-
- desktop_dir = ephy_file_desktop_dir ();
-
- /* Where are we going to save */
- uri = gnome_vfs_uri_new (dest);
- desktop = gnome_vfs_uri_new (desktop_dir);
- g_return_if_fail (uri != NULL);
-
- parent = gnome_vfs_uri_get_parent (uri);
+ g_return_if_fail (dest != NULL);
- /* If save location is the desktop, don't open it */
- if (!gnome_vfs_uri_equal (desktop, parent))
- ephy_file_browse_to (dest, user_time);
+ /* If save location is the desktop, nautilus will not open */
+ ephy_file_browse_to (dest, user_time);
- g_free (desktop_dir);
- gnome_vfs_uri_unref (uri);
- gnome_vfs_uri_unref (parent);
- gnome_vfs_uri_unref (desktop);
}
}