From 765d8e1d3dd3f8bf3b741772fd8c3a56d024c07f Mon Sep 17 00:00:00 2001 From: Ross Vandegrift Date: Thu, 14 May 2020 11:18:45 +0100 Subject: [PATCH] Don't set x-scheme-handler/file for File manager app. Summary: File managers should handle inode/directory, not x-scheme-handler/file. Registering x-scheme-handler/file means that the file manager app should open all "file://" URLs. And because of some details of the FDO spec, scheme handlers override mime-type handlers. As a result, other desktop environments can start using a file manager to open all local files. fixes T7521 Reviewers: devilhorns, raster Reviewed By: raster Subscribers: cedric, zmike Tags: #enlightenment-git Maniphest Tasks: T7521 Differential Revision: https://phab.enlightenment.org/D10244 --- src/bin/e_open.c | 2 +- src/modules/conf_applications/e_int_config_defapps.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/e_open.c b/src/bin/e_open.c index 0960bddce..602db5a80 100644 --- a/src/bin/e_open.c +++ b/src/bin/e_open.c @@ -443,7 +443,7 @@ static const struct type_mime /* {"browser", "x-scheme-handler/http"}, */ {"mail", "x-scheme-handler/mailto"}, /* {"terminal", NULL}, */ - {"filemanager", "x-scheme-handler/file"}, + {"filemanager", "inode/directory"}, {"image", "image/jpeg"}, {"video", "video/x-mpeg"}, {"music", "audio/mp3"}, diff --git a/src/modules/conf_applications/e_int_config_defapps.c b/src/modules/conf_applications/e_int_config_defapps.c index f4b5f0583..fd394c58a 100644 --- a/src/modules/conf_applications/e_int_config_defapps.c +++ b/src/modules/conf_applications/e_int_config_defapps.c @@ -131,7 +131,7 @@ _create_data(E_Config_Dialog *cfd EINA_UNUSED) if (s) cfdata->browser_desktop = eina_stringshare_add(s); s = efreet_ini_string_get(myini, "x-scheme-handler/mailto"); if (s) cfdata->mailto_desktop = eina_stringshare_add(s); - s = efreet_ini_string_get(myini, "x-scheme-handler/file"); + s = efreet_ini_string_get(myini, "inode/directory"); if (s) cfdata->file_desktop = eina_stringshare_add(s); s = efreet_ini_string_get(myini, "x-scheme-handler/trash"); if (s) cfdata->trash_desktop = eina_stringshare_add(s); @@ -385,7 +385,7 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata) efreet_ini_string_set(cfdata->ini, "x-scheme-handler/mailto", cfdata->mailto_desktop); if ((cfdata->file_desktop) && (cfdata->file_desktop[0])) - efreet_ini_string_set(cfdata->ini, "x-scheme-handler/file", + efreet_ini_string_set(cfdata->ini, "inode/directory", cfdata->file_desktop); if ((cfdata->trash_desktop) && (cfdata->trash_desktop[0])) efreet_ini_string_set(cfdata->ini, "x-scheme-handler/trash",