diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-12-17 15:19:07 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-12-17 22:06:35 +0100 |
commit | 0a9917b756cf49b117766c9236a7bf63d6d4b607 (patch) | |
tree | fac1afc11e4417ce7c19ff4c0ca058721c8c5643 /forms | |
parent | cabc14a343142e53ab1ef0085b023bb7fadcf449 (diff) |
tdf#122152 set dialog parent
Change-Id: I15f6d577c3584d28f667a04b5571de80effe53fe
Reviewed-on: https://gerrit.libreoffice.org/65274
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'forms')
-rw-r--r-- | forms/source/runtime/formoperations.cxx | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/forms/source/runtime/formoperations.cxx b/forms/source/runtime/formoperations.cxx index 0ff115326e09..35798286fa3d 100644 --- a/forms/source/runtime/formoperations.cxx +++ b/forms/source/runtime/formoperations.cxx @@ -28,6 +28,7 @@ #include <com/sun/star/ucb/AlreadyInitializedException.hpp> #include <com/sun/star/util/XModifyBroadcaster.hpp> #include <com/sun/star/form/runtime/FormFeature.hpp> +#include <com/sun/star/frame/XFrame.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/lang/DisposedException.hpp> #include <com/sun/star/awt/XControl.hpp> @@ -1685,18 +1686,32 @@ namespace frm return; try { + css::uno::Reference<css::awt::XWindow> xDialogParent; + + //tdf#122152 extract parent for dialog + css::uno::Reference<css::awt::XTabController> xTabController(m_xController, css::uno::UNO_QUERY); + if (xTabController.is()) + { + css::uno::Reference<css::awt::XControl> xContainerControl(xTabController->getContainer(), css::uno::UNO_QUERY); + if (xContainerControl.is()) + { + css::uno::Reference<css::awt::XWindowPeer> xContainerPeer(xContainerControl->getPeer(), css::uno::UNO_QUERY); + xDialogParent = css::uno::Reference<css::awt::XWindow>(xContainerPeer, css::uno::UNO_QUERY); + } + } + Reference< XExecutableDialog> xDialog; if ( _bFilter ) { xDialog = css::sdb::FilterDialog::createWithQuery(m_xContext, m_xParser, m_xCursor, - Reference<css::awt::XWindow>()); + xDialogParent); } else { - xDialog = css::sdb::OrderDialog::createWithQuery(m_xContext, m_xParser, m_xCursorProperties); + xDialog = css::sdb::OrderDialog::createWithQuery(m_xContext, m_xParser, m_xCursorProperties, + xDialogParent); } - if ( RET_OK == xDialog->execute() ) { WaitObject aWO( nullptr ); |