diff --git a/usr/lib/linuxmint/mintMenu/plugins/easybuttons.py b/usr/lib/linuxmint/mintMenu/plugins/easybuttons.py index 3b2c64b..1898b23 100755 --- a/usr/lib/linuxmint/mintMenu/plugins/easybuttons.py +++ b/usr/lib/linuxmint/mintMenu/plugins/easybuttons.py @@ -299,6 +299,7 @@ class ApplicationLauncher( easyButton ): self.appCategories = desktopItem.getCategories() self.appGnomeDocPath = desktopItem.get( "X-MATE-DocPath" ) or "" self.useTerminal = desktopItem.getTerminal() + self.appPath = desktopItem.getPath() if not self.appGnomeDocPath: self.appKdeDocPath = desktopItem.getDocPath() or "" @@ -384,9 +385,9 @@ class ApplicationLauncher( easyButton ): if self.appExec: if self.useTerminal: cmd = "x-terminal-emulator -e \"" + self.appExec + "\"" - Execute(cmd) + Execute(cmd, self.appPath) else: - Execute(self.appExec) + Execute(self.appExec, self.appPath) def uninstall (self, *args ): Execute("gksu /usr/lib/linuxmint/mintMenu/mintRemove.py " + self.desktopFile) diff --git a/usr/lib/linuxmint/mintMenu/plugins/execute.py b/usr/lib/linuxmint/mintMenu/plugins/execute.py index 1f43490..fdfb84c 100755 --- a/usr/lib/linuxmint/mintMenu/plugins/execute.py +++ b/usr/lib/linuxmint/mintMenu/plugins/execute.py @@ -13,16 +13,25 @@ def RemoveArgs(Execline): return NewExecline # Actually execute the command -def Execute( cmd ): +def Execute( cmd , commandCwd=None): + if not commandCwd: + cwd = os.path.expanduser( "~" ); + else: + tmpCwd = os.path.expanduser( commandCwd ); + if (os.path.exists(tmpCwd)): + cwd = tmpCwd + if isinstance( cmd, str ) or isinstance( cmd, unicode): if (cmd.find("/home/") >= 0) or (cmd.find("su-to-root") >= 0) or (cmd.find("\"") >= 0): print "running manually..." + os.chdir(cwd) os.system(cmd + " &") return True cmd = cmd.split() cmd = RemoveArgs(cmd) + try: - os.chdir( os.path.expanduser( "~" ) ) + os.chdir( cwd ) subprocess.Popen( cmd ) return True except Exception, detail: