tdf#127192 Printing in main thread

the wollmux has change the dialogs form swing to the LO-Dialogs,
and when printig with MS-PDF then LO hang on this line.
The reason is wollmux run in it own thread, but this thread has
no win-message-pump, when the printer-driver would open the
FileSave-Dialog then it hangs, because the message-pump
is missing in this thread.

The swing has made it own win-message-pump for this
thread.

Change-Id: Ia5131464dcc5f166133a3302d29550e945dd1026
Reviewed-on: https://gerrit.libreoffice.org/78170
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Reviewed-by: Juergen Funk (CIB) <juergen.funk_ml@cib.de>
Tested-by: Juergen Funk (CIB) <juergen.funk_ml@cib.de>
This commit is contained in:
Juergen Funk
2019-08-27 09:22:17 +02:00
committed by Juergen Funk (CIB)
parent 63ee66fd96
commit c16bfef0d5

View File

@@ -52,6 +52,8 @@
#include <com/sun/star/lang/XInitialization.hpp>
#include <comphelper/processfactory.hxx>
#include <vcl/threadex.hxx>
#include <malloc.h>
#include <winspool.h>
@@ -1502,8 +1504,8 @@ bool WinSalPrinter::StartJob( const OUString* pFileName,
else
aInfo.lpszOutput = nullptr;
// start Job
int nRet = lcl_StartDocW( hDC, &aInfo, this );
// start Job, in the main thread
int nRet = vcl::solarthread::syncExecute([hDC, this, &aInfo]() -> int { return lcl_StartDocW(hDC, &aInfo, this); });
if ( nRet <= 0 )
{