summaryrefslogtreecommitdiff
path: root/src/nautilus-mime-actions.c
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2012-10-19 18:28:51 -0400
committerCosimo Cecchi <cosimoc@gnome.org>2012-10-19 18:37:31 -0400
commitfe1965f2cafc4616caaea0ae048bf1ff5c8975f5 (patch)
tree296b6ba92cb01792dc17c4a8fb341442e518b782 /src/nautilus-mime-actions.c
parentadc6d3f75eaf303e3d83a9dca1f5822fe83ed2b0 (diff)
downloadnautilus-fe1965f2cafc4616caaea0ae048bf1ff5c8975f5.tar.gz
mime-actions: resolve symbolic links before launching the application
We already do this for all other kind of references, and I think it makes sense to do it for symbolic links too. This also ensures applications don't have to deal with e.g. ensuring backup files are saved relative to the original file and not the symlink, as reported in https://bugzilla.gnome.org/show_bug.cgi?id=686465
Diffstat (limited to 'src/nautilus-mime-actions.c')
-rw-r--r--src/nautilus-mime-actions.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/nautilus-mime-actions.c b/src/nautilus-mime-actions.c
index 13a6a21bf..5a838a018 100644
--- a/src/nautilus-mime-actions.c
+++ b/src/nautilus-mime-actions.c
@@ -2020,13 +2020,21 @@ activate_activation_uris_ready_callback (GList *files_ignore,
/* Convert the files to the actual activation uri files */
for (l = parameters->locations; l != NULL; l = l->next) {
- char *uri;
+ char *uri = NULL;
+
location = l->data;
/* We want the file for the activation URI since we care
* about the attributes for that, not for the original file.
*/
- uri = nautilus_file_get_activation_uri (location->file);
+ if (nautilus_file_is_symbolic_link (location->file)) {
+ uri = nautilus_file_get_symbolic_link_target_uri (location->file);
+ }
+
+ if (uri == NULL) {
+ uri = nautilus_file_get_activation_uri (location->file);
+ }
+
if (uri != NULL) {
launch_location_update_from_uri (location, uri);
}