diff options
-rw-r--r-- | shell/source/unix/exec/shellexec.cxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/shell/source/unix/exec/shellexec.cxx b/shell/source/unix/exec/shellexec.cxx index 1d52eab31618..b9c0b2caae40 100644 --- a/shell/source/unix/exec/shellexec.cxx +++ b/shell/source/unix/exec/shellexec.cxx @@ -282,7 +282,13 @@ void SAL_CALL ShellExec::execute( const OUString& aCommand, const OUString& aPar pDesktopLaunch = NULL; } - OString cmd = aBuffer.makeStringAndClear(); + OString cmd = +#ifdef LINUX + // avoid blocking (call it in background) + OStringBuffer().append( "( " ).append( aBuffer ).append( " ) &" ).makeStringAndClear(); +#else + aBuffer.makeStringAndClear(); +#endif if ( 0 != pclose(popen(cmd.getStr(), "w")) ) { int nerr = errno; |