summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nautilus-application.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/nautilus-application.c b/src/nautilus-application.c
index dc526239a..f06065125 100644
--- a/src/nautilus-application.c
+++ b/src/nautilus-application.c
@@ -71,6 +71,7 @@
#include <libnautilus-private/nautilus-undo-manager.h>
#include <libnautilus-private/nautilus-volume-monitor.h>
#include <libnautilus-private/nautilus-desktop-link-monitor.h>
+#include <libnautilus-private/nautilus-directory-private.h>
#include <bonobo-activation/bonobo-activation.h>
/* Needed for the is_kdesktop_present check */
@@ -366,6 +367,53 @@ finish_startup (NautilusApplication *application)
nautilus_desktop_link_monitor_get ();
}
+static void
+initialize_kde_trash_hack (void)
+{
+ char *trash_dir;
+ char *desktop_dir, *desktop_uri, *kde_trash_dir;
+ char *dir, *basename;
+ char *kde_conf_file;
+ char *key;
+ gboolean def;
+
+ trash_dir = NULL;
+
+ desktop_uri = nautilus_get_desktop_directory_uri_no_create ();
+ desktop_dir = gnome_vfs_get_local_path_from_uri (desktop_uri);
+ g_free (desktop_uri);
+
+ if (g_file_test (desktop_dir, G_FILE_TEST_EXISTS)) {
+ /* Look for trash directory */
+ kde_conf_file = g_build_filename (g_get_home_dir(), ".kde/share/config/kdeglobals", NULL);
+ key = g_strconcat ("=", kde_conf_file, "=/Paths/Trash", NULL);
+ kde_trash_dir = gnome_config_get_string_with_default (key, &def);
+ gnome_config_drop_file (kde_conf_file);
+ g_free (kde_conf_file);
+ g_free (key);
+
+ if (kde_trash_dir != NULL) {
+ basename = g_path_get_basename (kde_trash_dir);
+ g_free (kde_trash_dir);
+
+ dir = g_build_filename (desktop_dir, basename, NULL);
+
+ if (g_file_test (dir, G_FILE_TEST_IS_DIR)) {
+ trash_dir = g_strdup (basename);
+ }
+ g_free (basename);
+ g_free (dir);
+ }
+
+ if (trash_dir != NULL) {
+ nautilus_set_kde_trash_name (trash_dir);
+ }
+
+ g_free (trash_dir);
+ }
+ g_free (desktop_dir);
+}
+
void
nautilus_application_startup (NautilusApplication *application,
gboolean kill_shell,
@@ -404,6 +452,8 @@ nautilus_application_startup (NautilusApplication *application,
nautilus_set_first_time_file_flag ();
}
+ initialize_kde_trash_hack ();
+
CORBA_exception_init (&ev);
/* Start up the factory. */