diff options
Diffstat (limited to 'embeddedobj')
-rw-r--r-- | embeddedobj/Library_emboleobj.mk | 1 | ||||
-rw-r--r-- | embeddedobj/source/msole/xdialogcreator.cxx | 9 |
2 files changed, 10 insertions, 0 deletions
diff --git a/embeddedobj/Library_emboleobj.mk b/embeddedobj/Library_emboleobj.mk index 9e3c1b5950d2..3bfbec56d89d 100644 --- a/embeddedobj/Library_emboleobj.mk +++ b/embeddedobj/Library_emboleobj.mk @@ -14,6 +14,7 @@ $(eval $(call gb_Library_set_componentfile,emboleobj,embeddedobj/source/msole/em $(eval $(call gb_Library_set_include,emboleobj,\ -I$(SRCDIR)/embeddedobj/source/inc \ + $(if $(filter WNT,$(OS)),-I$(SRCDIR)/vcl/inc) \ $$(INCLUDE) \ )) 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 ) |