derekf pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=67e07e5d2d572957fa8a16c662b22baa39d7b643

commit 67e07e5d2d572957fa8a16c662b22baa39d7b643
Author: Derek Foreman <[email protected]>
Date:   Fri Mar 24 14:28:37 2017 -0500

    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 ae3ab17..e1cafaa 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)

-- 


Reply via email to