diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-11-03 15:27:35 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-11-04 20:27:00 +0100 |
commit | 0a09ca614bcf07fadddeecb217f0c871f084810c (patch) | |
tree | 90560942df3c9086032f3d7bbbde1683f34e3dbd /framework | |
parent | 26211f0456227ba7ec23143f8fa6de5c405a8229 (diff) |
Related: tdf#113160 set parent of warning dialogs during load
to the new window frame being constructed that (may) contain
the progress bar, that way such modal dialogs affect the loading
document window and not whatever window happens to be active
Change-Id: I1c7d3185e47fa316eef003b80d18b31d341b79d6
Reviewed-on: https://gerrit.libreoffice.org/44269
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'framework')
-rw-r--r-- | framework/source/loadenv/loadenv.cxx | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/framework/source/loadenv/loadenv.cxx b/framework/source/loadenv/loadenv.cxx index 3bfd87e3244c..b76f13ef8c66 100644 --- a/framework/source/loadenv/loadenv.cxx +++ b/framework/source/loadenv/loadenv.cxx @@ -1042,17 +1042,32 @@ bool LoadEnv::impl_loadContent() bool bHidden = m_lMediaDescriptor.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_HIDDEN(), false); bool bMinimized = m_lMediaDescriptor.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_MINIMIZED(), false); bool bPreview = m_lMediaDescriptor.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_PREVIEW(), false); - css::uno::Reference< css::task::XStatusIndicator > xProgress = m_lMediaDescriptor.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_STATUSINDICATOR(), css::uno::Reference< css::task::XStatusIndicator >()); - if (!bHidden && !bMinimized && !bPreview && !xProgress.is()) + if (!bHidden && !bMinimized && !bPreview) { - // Note: it's an optional interface! - css::uno::Reference< css::task::XStatusIndicatorFactory > xProgressFactory(xTargetFrame, css::uno::UNO_QUERY); - if (xProgressFactory.is()) + css::uno::Reference< css::task::XStatusIndicator > xProgress = m_lMediaDescriptor.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_STATUSINDICATOR(), css::uno::Reference< css::task::XStatusIndicator >()); + if (!xProgress.is()) { - xProgress = xProgressFactory->createStatusIndicator(); - if (xProgress.is()) - m_lMediaDescriptor[utl::MediaDescriptor::PROP_STATUSINDICATOR()] <<= xProgress; + // Note: it's an optional interface! + css::uno::Reference< css::task::XStatusIndicatorFactory > xProgressFactory(xTargetFrame, css::uno::UNO_QUERY); + if (xProgressFactory.is()) + { + xProgress = xProgressFactory->createStatusIndicator(); + if (xProgress.is()) + m_lMediaDescriptor[utl::MediaDescriptor::PROP_STATUSINDICATOR()] <<= xProgress; + } + } + if (!comphelper::LibreOfficeKit::isActive()) + { + //now that we have a window, set things up so that warnings dialogs are relative to that window + css::uno::Reference<css::task::XInteractionHandler> xInteractionHandler( + task::InteractionHandler::createWithParent(m_xContext, xTargetFrame->getContainerWindow()), + css::uno::UNO_QUERY); + if (xInteractionHandler.is()) + { + m_lMediaDescriptor[utl::MediaDescriptor::PROP_INTERACTIONHANDLER()] <<= xInteractionHandler; + m_lMediaDescriptor[utl::MediaDescriptor::PROP_AUTHENTICATIONHANDLER()] <<= xInteractionHandler; + } } } |