summaryrefslogtreecommitdiff
path: root/embeddedobj
diff options
context:
space:
mode:
Diffstat (limited to 'embeddedobj')
-rw-r--r--embeddedobj/Library_emboleobj.mk1
-rw-r--r--embeddedobj/source/msole/xdialogcreator.cxx9
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 )