From 67e07e5d2d572957fa8a16c662b22baa39d7b643 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Fri, 24 Mar 2017 14:28:37 -0500 Subject: [PATCH] efreet: Don't prefer the second perfect over the first in desktop_exec_find() We test a second match for a perfect match, then stop all further processing, but we never test the first match. This leads to a situation where a system wide .desktop file is given precedence over a local override. Instead, check the first match too. #test-e --- src/lib/efreet/efreet_utils.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/efreet/efreet_utils.c b/src/lib/efreet/efreet_utils.c index ae3ab17e5a..e1cafaaf89 100644 --- a/src/lib/efreet/efreet_utils.c +++ b/src/lib/efreet/efreet_utils.c @@ -279,7 +279,12 @@ efreet_util_desktop_exec_find(const char *exec) ret = efreet_desktop_get(array->array[j]); if (ret) { - if (!bestret) bestret = ret; + if (!bestret) + { + bestret = ret; + if (bestret->exec && !strcmp(bestret->exec, exec)) + goto done; + } else { if (ret->exec)