From 0a9917b756cf49b117766c9236a7bf63d6d4b607 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Mon, 17 Dec 2018 15:19:07 +0000 Subject: tdf#122152 set dialog parent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I15f6d577c3584d28f667a04b5571de80effe53fe Reviewed-on: https://gerrit.libreoffice.org/65274 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- forms/source/runtime/formoperations.cxx | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'forms') 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 #include #include +#include #include #include #include @@ -1685,18 +1686,32 @@ namespace frm return; try { + css::uno::Reference xDialogParent; + + //tdf#122152 extract parent for dialog + css::uno::Reference xTabController(m_xController, css::uno::UNO_QUERY); + if (xTabController.is()) + { + css::uno::Reference xContainerControl(xTabController->getContainer(), css::uno::UNO_QUERY); + if (xContainerControl.is()) + { + css::uno::Reference xContainerPeer(xContainerControl->getPeer(), css::uno::UNO_QUERY); + xDialogParent = css::uno::Reference(xContainerPeer, css::uno::UNO_QUERY); + } + } + Reference< XExecutableDialog> xDialog; if ( _bFilter ) { xDialog = css::sdb::FilterDialog::createWithQuery(m_xContext, m_xParser, m_xCursor, - Reference()); + 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 ); -- cgit