Am Samstag, den 13.08.2005, 17:22 -0400 schrieb Kevin C. Krinke: > On Sat, 2005-08-13 at 14:43 +0200, Christian Neumair wrote: > > Sven J. schrieb: > > The desktop is a window as well. Currently, we just don't convert > > "x-nautilus-desktop:///" to the location of the physical desktop > > directory. There is a bug report [1]. I'd appreciate if you could test > > the attached patch and give some feedback. I don't think that the > > attached patch fixes the selected files' location yet. > > > > [1] http://bugzilla.gnome.org/show_bug.cgi?id=148545 > > Sadly I must report that I've done nothing else with the bug report or > patch, and in fact I had no idea people even commented on the bug > report. *sigh* I really need to keep up to speed with these things more. > > So, no the patch doesn't work nor do I know what to really do about it > considering I seriously do not have the time to devote to solving a > problem I still bang my head on from time to time. I've attached a new patch which just converts the selected URIs. This is IMHO better, since it still allows the programmer to find out whether the currently displayed directory is trash:/// or ~/.Trash resp. x-nautilus-desktop:/// or ~ resp. ~/Desktop. Attaching the new patch to this mail as well, hoping that it helps you with your problem. -- Christian Neumair <chris gnome-de org>
Index: src/file-manager/fm-directory-view.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/file-manager/fm-directory-view.c,v
retrieving revision 1.703
diff -u -p -r1.703 fm-directory-view.c
--- src/file-manager/fm-directory-view.c 1 Aug 2005 22:08:55 -0000 1.703
+++ src/file-manager/fm-directory-view.c 14 Aug 2005 19:05:52 -0000
@@ -4655,17 +4690,32 @@ get_file_paths_or_uris_as_newline_delimi
char *path;
char *uri;
char *result;
+ NautilusDesktopLink *link;
GString *expanding_string;
GList *node;
expanding_string = g_string_new ("");
for (node = selection; node != NULL; node = node->next) {
- uri = nautilus_file_get_uri (NAUTILUS_FILE (node->data));
+ uri = NULL;
+
+ if (NAUTILUS_IS_DESKTOP_ICON_FILE (node->data)) {
+ link = nautilus_desktop_icon_file_get_link (NAUTILUS_DESKTOP_ICON_FILE (node->data));
+ if (link != NULL) {
+ uri = nautilus_desktop_link_get_activation_uri (link);
+ g_object_unref (G_OBJECT (link));
+ }
+ }
+
+ if (uri == NULL) {
+ uri = nautilus_file_get_uri (NAUTILUS_FILE (node->data));
+ }
if (get_paths) {
path = gnome_vfs_get_local_path_from_uri (uri);
- g_string_append (expanding_string, path);
- g_free (path);
+ if (path != NULL) {
+ g_string_append (expanding_string, path);
+ g_free (path);
+ }
} else {
g_string_append (expanding_string, uri);
}
@@ -4708,7 +4758,9 @@ set_script_environment_variables (FMDire
* nautilus_directory_is_local returns FALSE for nfs.
*/
directory_uri = nautilus_directory_get_uri (view->details->model);
- if (eel_str_has_prefix (directory_uri, "file:")) {
+ if (eel_str_has_prefix (directory_uri, "file:") ||
+ eel_uri_is_desktop (directory_uri) ||
+ eel_uri_is_trash (directory_uri)) {
file_paths = get_file_paths_as_newline_delimited_string (selected_files);
} else {
file_paths = g_strdup ("");
Attachment:
signature.asc
Description: This is a digitally signed message part