diff options
Diffstat (limited to 'embeddedobj/source/msole/xdialogcreator.cxx')
-rw-r--r-- | embeddedobj/source/msole/xdialogcreator.cxx | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/embeddedobj/source/msole/xdialogcreator.cxx b/embeddedobj/source/msole/xdialogcreator.cxx index f94020a65a8f..be26a300d298 100644 --- a/embeddedobj/source/msole/xdialogcreator.cxx +++ b/embeddedobj/source/msole/xdialogcreator.cxx @@ -44,6 +44,10 @@ #include <oledlg.h> +#include <svsys.h> +#include <win/saldata.hxx> +#include <win/salinst.h> + class InitializedOleGuard { public: @@ -174,6 +178,11 @@ 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. + BOOL const ret = PostMessageW(GetSalData()->mpInstance->mhComWnd, SAL_MSG_FORCE_REAL_TIMER, 0, 0); + SAL_WARN_IF(0 == ret, "embeddedobj.ole", "ERROR: PostMessage() failed!"); + uTemp=pInsertFct(&io); if ( OLEUI_OK != uTemp ) |