summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-03-03 14:03:12 +0000
committerSzymon Kłos <szymon.klos@collabora.com>2021-05-25 12:12:25 +0200
commit5671f1f8ff7a0fbb02030995dedf8781d4a84d01 (patch)
treefa38ca1cb0b46444deba9cc30587cf938622bfa1 /sfx2
parent9142876e208d714508984b192eb8ba35af30c100 (diff)
create GetElementParentWindow on demand
Change-Id: I5c7182986206483ab8b1993a360767425870d69e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111940 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/sidebar/Panel.cxx16
-rw-r--r--sfx2/source/sidebar/SidebarController.cxx5
2 files changed, 15 insertions, 6 deletions
diff --git a/sfx2/source/sidebar/Panel.cxx b/sfx2/source/sidebar/Panel.cxx
index 3f6775ca6133..490bf2696fbf 100644
--- a/sfx2/source/sidebar/Panel.cxx
+++ b/sfx2/source/sidebar/Panel.cxx
@@ -60,7 +60,7 @@ Panel::Panel(const PanelDescriptor& rPanelDescriptor,
, mxFrame(rxFrame)
, mxTitleBar(new PanelTitleBar(rPanelDescriptor.msTitle, *m_xBuilder, this))
, mxContents(m_xBuilder->weld_container("contents"))
- , mxXWindow(mxContents->CreateChildFrame())
+ , mxAwtXWindow(mxContents->CreateChildFrame())
{
SetText(rPanelDescriptor.msTitle);
mxContents->set_visible(mbIsExpanded);
@@ -111,8 +111,11 @@ void Panel::dispose()
mxTitleBar.reset();
- mxXWindow->dispose();
- mxXWindow.clear();
+ if (mxAwtXWindow)
+ {
+ mxAwtXWindow->dispose();
+ mxAwtXWindow.clear();
+ }
mxContents.reset();
InterimItemWindow::dispose();
@@ -181,6 +184,13 @@ Reference<awt::XWindow> Panel::GetElementWindow()
return nullptr;
}
+Reference<awt::XWindow> Panel::GetElementParentWindow()
+{
+ if (!mxAwtXWindow)
+ mxAwtXWindow = mxContents->CreateChildFrame();
+ return mxAwtXWindow;
+}
+
} // end of namespace sfx2::sidebar
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/sidebar/SidebarController.cxx b/sfx2/source/sidebar/SidebarController.cxx
index df6d1c4761f1..5294525f1d4b 100644
--- a/sfx2/source/sidebar/SidebarController.cxx
+++ b/sfx2/source/sidebar/SidebarController.cxx
@@ -934,9 +934,8 @@ VclPtr<Panel> SidebarController::CreatePanel (
mxFrame);
// Create the XUIElement.
- Reference<awt::XWindowPeer> xPeer(pPanel->GetElementParentWindow(), UNO_QUERY);
Reference<ui::XUIElement> xUIElement (CreateUIElement(
- xPeer,
+ pPanel->GetElementParentWindow(),
xPanelDescriptor->msImplementationURL,
xPanelDescriptor->mbWantsCanvas,
rContext));
@@ -954,7 +953,7 @@ VclPtr<Panel> SidebarController::CreatePanel (
}
Reference<ui::XUIElement> SidebarController::CreateUIElement (
- const Reference<awt::XWindowPeer>& rxWindow,
+ const Reference<awt::XWindow>& rxWindow,
const OUString& rsImplementationURL,
const bool bWantsCanvas,
const Context& rContext)