diff options
-rw-r--r-- | libnautilus-private/nautilus-desktop-icon-file.c | 24 | ||||
-rw-r--r-- | libnautilus-private/nautilus-file.c | 17 |
2 files changed, 25 insertions, 16 deletions
diff --git a/libnautilus-private/nautilus-desktop-icon-file.c b/libnautilus-private/nautilus-desktop-icon-file.c index d0cd02821..89003a9e7 100644 --- a/libnautilus-private/nautilus-desktop-icon-file.c +++ b/libnautilus-private/nautilus-desktop-icon-file.c @@ -344,6 +344,29 @@ nautilus_desktop_icon_file_eject (NautilusFile *file, } } +static char* +real_get_target_uri (NautilusFile *file) +{ + char *uri = NULL; + GFile *location; + NautilusDesktopLink *link; + + g_return_val_if_fail (NAUTILUS_IS_DESKTOP_ICON_FILE (file), NULL); + + link = nautilus_desktop_icon_file_get_link (NAUTILUS_DESKTOP_ICON_FILE (file)); + + if (link != NULL) { + location = nautilus_desktop_link_get_activation_location (link); + g_object_unref (link); + if (location != NULL) { + uri = g_file_get_uri (location); + g_object_unref (location); + } + } + + return uri; +} + static void real_rename (NautilusFile *file, const char *new_name, @@ -465,6 +488,7 @@ nautilus_desktop_icon_file_class_init (NautilusDesktopIconFileClass *klass) file_class->eject = nautilus_desktop_icon_file_eject; file_class->can_rename = real_can_rename; file_class->rename = real_rename; + file_class->get_target_uri = real_get_target_uri; g_type_class_add_private (object_class, sizeof(NautilusDesktopIconFileDetails)); } diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c index 0f46ab754..cad5142ef 100644 --- a/libnautilus-private/nautilus-file.c +++ b/libnautilus-private/nautilus-file.c @@ -3857,26 +3857,11 @@ real_get_target_uri (NautilusFile *file) { char *uri, *target_uri; GFile *location; - NautilusDesktopLink *link; g_return_val_if_fail (NAUTILUS_IS_FILE (file), NULL); - if (NAUTILUS_IS_DESKTOP_ICON_FILE (file)) { - link = nautilus_desktop_icon_file_get_link (NAUTILUS_DESKTOP_ICON_FILE (file)); - - if (link != NULL) { - location = nautilus_desktop_link_get_activation_location (link); - g_object_unref (link); - if (location != NULL) { - uri = g_file_get_uri (location); - g_object_unref (location); - return uri; - } - } - } - uri = nautilus_file_get_uri (file); - + /* Check for Nautilus link */ if (nautilus_file_is_nautilus_link (file)) { location = nautilus_file_get_location (file); |