diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-03-03 14:03:12 +0000 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2021-05-25 12:12:25 +0200 |
commit | 5671f1f8ff7a0fbb02030995dedf8781d4a84d01 (patch) | |
tree | fa38ca1cb0b46444deba9cc30587cf938622bfa1 /sfx2 | |
parent | 9142876e208d714508984b192eb8ba35af30c100 (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.cxx | 16 | ||||
-rw-r--r-- | sfx2/source/sidebar/SidebarController.cxx | 5 |
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) |