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
This commit is contained in:
Ross Vandegrift 2020-05-14 11:18:45 +01:00 committed by Carsten Haitzler (Rasterman)
parent d2e5fdc965
commit 765d8e1d3d
2 changed files with 3 additions and 3 deletions

View File

@ -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"},

View File

@ -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",