diff options
-rw-r--r-- | sfx2/source/doc/objserv.cxx | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx index 601b5f5889f8..8fc60c3c0899 100644 --- a/sfx2/source/doc/objserv.cxx +++ b/sfx2/source/doc/objserv.cxx @@ -593,9 +593,14 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) const SfxUnoAnyItem* pInteractionHandlerItem = rReq.GetArg<SfxUnoAnyItem>(SID_INTERACTIONHANDLER); if ( !pInteractionHandlerItem ) { + uno::Reference<css::awt::XWindow> xParentWindow; + uno::Reference<frame::XController> xCtrl(GetModel()->getCurrentController()); + if (xCtrl.is()) + xParentWindow = xCtrl->getFrame()->getContainerWindow(); + uno::Reference< uno::XComponentContext > xContext = ::comphelper::getProcessComponentContext(); uno::Reference< task::XInteractionHandler2 > xInteract( - task::InteractionHandler::createWithParent(xContext, nullptr) ); + task::InteractionHandler::createWithParent(xContext, xParentWindow) ); SfxUnoAnyItem aInteractionItem( SID_INTERACTIONHANDLER, uno::makeAny( xInteract ) ); if ( nId == SID_SAVEDOC ) |