summaryrefslogtreecommitdiff
path: root/src/nautilus-desktop-window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nautilus-desktop-window.c')
-rw-r--r--src/nautilus-desktop-window.c29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/nautilus-desktop-window.c b/src/nautilus-desktop-window.c
index 4720a436f..964c8fe9d 100644
--- a/src/nautilus-desktop-window.c
+++ b/src/nautilus-desktop-window.c
@@ -28,7 +28,9 @@
#include <libnautilus-extensions/nautilus-gtk-macros.h>
#include <libnautilus-extensions/nautilus-gtk-extensions.h>
#include <libnautilus-extensions/nautilus-file-utilities.h>
+#include <libnautilus-extensions/nautilus-link-set.h>
#include <libgnomeui/gnome-winhints.h>
+#include <libgnomevfs/gnome-vfs-utils.h>
struct NautilusDesktopWindowDetails {
GList *unref_list;
@@ -83,7 +85,9 @@ NautilusDesktopWindow *
nautilus_desktop_window_new (NautilusApp *application)
{
NautilusDesktopWindow *window;
- char *desktop_directory;
+ const char *desktop_directory_path;
+ char *desktop_directory_path_in_uri_format;
+ char *desktop_directory_uri;
window = NAUTILUS_DESKTOP_WINDOW
(gtk_object_new (nautilus_desktop_window_get_type(),
@@ -91,12 +95,29 @@ nautilus_desktop_window_new (NautilusApp *application)
"app_id", "nautilus",
NULL));
+ desktop_directory_path = nautilus_get_desktop_directory ();
+
+ /* Create the trash.
+ * We can do this at some other time if we want, but this
+ * might be a good time.
+ */
+ nautilus_link_set_install (desktop_directory_path, "desktop");
+
+ /* FIXME: This little ditty is just the way you convert a
+ * local path to a file: URI. Should be a utility somewhere
+ * to do the two steps at once.
+ */
+ desktop_directory_path_in_uri_format = gnome_vfs_escape_string
+ (desktop_directory_path, GNOME_VFS_URI_UNSAFE_PATH);
+ desktop_directory_uri = g_strconcat
+ ("file://", desktop_directory_path_in_uri_format, NULL);
+ g_free (desktop_directory_path_in_uri_format);
+
/* Point window at the desktop folder.
* Note that nautilus_desktop_window_initialize is too early to do this.
*/
- desktop_directory = g_strconcat ("file://", nautilus_get_desktop_directory (), NULL);
- nautilus_window_goto_uri (NAUTILUS_WINDOW (window), desktop_directory);
- g_free (desktop_directory);
+ nautilus_window_goto_uri (NAUTILUS_WINDOW (window), desktop_directory_uri);
+ g_free (desktop_directory_uri);
gtk_widget_show (GTK_WIDGET (window));