From f9a2bf7f0d5c9b4acdd0ac65e6638d9729e9c783 Mon Sep 17 00:00:00 2001 From: Jesse Smith Date: Mon, 15 Sep 2014 19:45:18 -0300 Subject: Select the first exec entry from a .desktop file rather than the last. Fixes some launch problems on icons with multiple potential launch paths on Linux. --- libLumina/LuminaXDG.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'libLumina/LuminaXDG.cpp') diff --git a/libLumina/LuminaXDG.cpp b/libLumina/LuminaXDG.cpp index 3bbc32f9..7934c924 100644 --- a/libLumina/LuminaXDG.cpp +++ b/libLumina/LuminaXDG.cpp @@ -20,6 +20,7 @@ XDGDesktop LXDG::loadDesktopFile(QString filePath, bool& ok){ DF.startupNotify=false; DF.type = XDGDesktop::BAD; DF.filePath = filePath; + DF.exec = DF.tryexec = ""; // just to make sure this is initialized //Check input file path validity QFile file(filePath); if(!file.exists()){ return DF; } //invalid file @@ -53,8 +54,8 @@ XDGDesktop LXDG::loadDesktopFile(QString filePath, bool& ok){ if(DF.icon.isEmpty() && loc.isEmpty()){ DF.icon = val; } else if(loc == lang){ DF.icon = val; } } - else if(var=="TryExec"){ DF.tryexec = val; } - else if(var=="Exec"){ DF.exec = val; } + else if( (var=="TryExec") && (DF.tryexec != "") ) { DF.tryexec = val; } + else if( (var=="Exec") && (DF.exec != "") ){ DF.exec = val; } // only take the first Exec command in the file else if(var=="NoDisplay" && !DF.isHidden){ DF.isHidden = (val.toLower()=="true"); } else if(var=="Hidden" && !DF.isHidden){ DF.isHidden = (val.toLower()=="true"); } else if(var=="Categories"){ DF.catList = val.split(";",QString::SkipEmptyParts); } -- cgit