summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntónio Fernandes <antoniof@gnome.org>2021-05-01 23:54:43 +0100
committerAntónio Fernandes <antoniof@gnome.org>2021-05-02 00:13:27 +0100
commit3e03a8b05258cf88bd61c61e3ac599103d464b38 (patch)
tree0f9d2aff4eb72ed00ffe2f30386aed15fda8d8d7
parent7058f1e24748dbafa03df2911b18fef920371402 (diff)
downloadnautilus-3e03a8b05258cf88bd61c61e3ac599103d464b38.tar.gz
files-view: Set PWD to current dir to run scripts
When running an executable text file as a program, it's reasonable to expect that the directory currently displayed by the file browser becomes the current working directory for that program. This used to be handled correctly by the activation action. While taking "Run as a Program" out of activation into a standalone action, this behavior was left behind. Let's add it back to the standalone action to fix the regression. Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/1842
-rw-r--r--src/nautilus-files-view.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
index 250c37264..e027f10e0 100644
--- a/src/nautilus-files-view.c
+++ b/src/nautilus-files-view.c
@@ -6619,6 +6619,7 @@ action_run_in_terminal (GSimpleAction *action,
{
NautilusFilesView *view;
g_autolist (NautilusFile) selection = NULL;
+ g_autofree char *old_working_dir = NULL;
g_autofree char *uri = NULL;
g_autofree char *executable_path = NULL;
g_autofree char *quoted_path = NULL;
@@ -6636,6 +6637,8 @@ action_run_in_terminal (GSimpleAction *action,
return;
}
+ old_working_dir = change_to_view_directory (view);
+
uri = nautilus_file_get_activation_uri (NAUTILUS_FILE (selection->data));
executable_path = g_filename_from_uri (uri, NULL, NULL);
quoted_path = g_shell_quote (executable_path);
@@ -6646,6 +6649,8 @@ action_run_in_terminal (GSimpleAction *action,
DEBUG ("Launching in terminal %s", quoted_path);
nautilus_launch_application_from_command (screen, quoted_path, TRUE, NULL);
+
+ g_chdir (old_working_dir);
}
#define BG_KEY_PRIMARY_COLOR "primary-color"