summaryrefslogtreecommitdiffstats
path: root/embeddedobj
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2018-12-12 16:11:35 +0100
committerJan-Marek Glogowski <glogow@fbihome.de>2018-12-14 16:21:25 +0100
commit3e3c3619fe695fea25d10a9bae0442317feca0cd (patch)
tree5ebb148246f7eddb6b784bb391f49c3d88a014b8 /embeddedobj
parenttdf#120625: All vcl windows now share 1 instance of clipboard (diff)
downloadcore-3e3c3619fe695fea25d10a9bae0442317feca0cd.tar.gz
core-3e3c3619fe695fea25d10a9bae0442317feca0cd.zip
tdf#117295 WIN no main loop shortcut for OLE dialog
Normally we handle Idle events directly without posting events to the main event queue, as there seem to be no way to post them to the end of the queue and this starves system events. This prevents using this short-cut, as the default Windows event processing doesn't know of this special handling. Eventually this hack should be removed by simply always processing all pending events... This patch includes the follow-up commit 7b148b0edfb2 ("WIN move native dialog hack into WinScheduler"). Change-Id: If9ae81ca7e847743f9251343e106dbf566371584 Reviewed-on: https://gerrit.libreoffice.org/65040 Reviewed-on: https://gerrit.libreoffice.org/65100 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit 5bb798a99e7b178ac57ee8c15238534723000bf9) (cherry picked from commit 7b148b0edfb217196c171f8e64e79b49669fc36f) Reviewed-on: https://gerrit.libreoffice.org/65065
Diffstat (limited to 'embeddedobj')
-rw-r--r--embeddedobj/source/msole/xdialogcreator.cxx5
1 files changed, 5 insertions, 0 deletions
diff --git a/embeddedobj/source/msole/xdialogcreator.cxx b/embeddedobj/source/msole/xdialogcreator.cxx
index f94020a65a8f..836f198eb867 100644
--- a/embeddedobj/source/msole/xdialogcreator.cxx
+++ b/embeddedobj/source/msole/xdialogcreator.cxx
@@ -43,6 +43,7 @@
#ifdef _WIN32
#include <oledlg.h>
+#include <vcl/winscheduler.hxx>
class InitializedOleGuard
{
@@ -174,6 +175,10 @@ embed::InsertedObjectInfo SAL_CALL MSOLEDialogObjectCreator::createInstanceByDia
if( !pInsertFct )
throw uno::RuntimeException();
+ // Disable any event loop shortcuts by enabling a real timer.
+ // This way the native windows dialog won't block our own processing.
+ WinScheduler::SetForceRealTimer();
+
uTemp=pInsertFct(&io);
if ( OLEUI_OK != uTemp )