summaryrefslogtreecommitdiff
path: root/forms
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-12-17 15:19:07 +0000
committerCaolán McNamara <caolanm@redhat.com>2018-12-18 14:10:59 +0100
commit49a608a2121e86a5da81caab4a29289a6937638e (patch)
tree013072d230a7667b3883b9f22e003ebae727987b /forms
parent1db0e536516b912c6b5e266a05f50a0dbfc58e67 (diff)
[API CHANGE] 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> (cherry picked from commit 0a9917b756cf49b117766c9236a7bf63d6d4b607) Reviewed-on: https://gerrit.libreoffice.org/65328
Diffstat (limited to 'forms')
-rw-r--r--forms/source/runtime/formoperations.cxx21
1 files changed, 18 insertions, 3 deletions
diff --git a/forms/source/runtime/formoperations.cxx b/forms/source/runtime/formoperations.cxx
index 76e3ec2a9647..1fa54a461189 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>
@@ -1691,18 +1692,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 );