vcl/source/helper/commandinfoprovider.cxx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)
New commits: commit c2d7b58662951c5d482e882ae730e532988d2ea3 Author: Maxim Monastirsky <momonas...@gmail.com> Date: Tue Nov 17 18:01:13 2015 +0200 Need to re-init CommandInfoProvider when component changes Otherwise many toolbar/menubar labels are missing when starting any component from the start center. Change-Id: I49d009431ae3d1003e5ff395265409b3a5641707 diff --git a/vcl/source/helper/commandinfoprovider.cxx b/vcl/source/helper/commandinfoprovider.cxx index 6a7e868..b04cff3 100644 --- a/vcl/source/helper/commandinfoprovider.cxx +++ b/vcl/source/helper/commandinfoprovider.cxx @@ -38,7 +38,7 @@ using namespace css::uno; namespace { typedef ::cppu::WeakComponentImplHelper < - css::lang::XEventListener + css::frame::XFrameActionListener > FrameListenerInterfaceBase; class FrameListener : public ::cppu::BaseMutex, @@ -51,15 +51,23 @@ namespace mxFrame(rxFrame) { if (mxFrame.is()) - mxFrame->addEventListener(this); + mxFrame->addFrameActionListener(this); } virtual ~FrameListener() { } + virtual void SAL_CALL frameAction(const css::frame::FrameActionEvent& aEvent) + throw (css::uno::RuntimeException, std::exception) override + { + // The same frame can be reused for a different component, e.g. + // starting component from the start center, so need to re-init the cached data. + if (aEvent.Action == css::frame::FrameAction_COMPONENT_DETACHING) + mrInfoProvider.SetFrame(nullptr); + } virtual void SAL_CALL disposing() override { if (mxFrame.is()) - mxFrame->removeEventListener(this); + mxFrame->removeFrameActionListener(this); } virtual void SAL_CALL disposing (const css::lang::EventObject& rEvent) throw (RuntimeException, std::exception) override _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits