diff options
Diffstat (limited to 'svx/source/tbxctrls/tbcontrl.cxx')
-rw-r--r-- | svx/source/tbxctrls/tbcontrl.cxx | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx index ff8aeb8b6db8..0d06766d6ef2 100644 --- a/svx/source/tbxctrls/tbcontrl.cxx +++ b/svx/source/tbxctrls/tbcontrl.cxx @@ -321,6 +321,8 @@ public: LanguageType& eSelectLanguage ); virtual ~SvxCurrencyList_Impl() override { disposeOnce(); } virtual void dispose() override; + + void PixelInvalidate(const tools::Rectangle* pRectangle) override; }; class SvxStyleToolBoxControl; @@ -2352,15 +2354,32 @@ SvxCurrencyList_Impl::SvxCurrencyList_Impl( if ( nSelectedPos >= 0 ) m_pCurrencyLb->SelectEntryPos( nSelectedPos ); m_pCurrencyLb->Show(); + + auto parentNotifier = GetParentWithLOKNotifier(); + if (parentNotifier) + SetLOKNotifier(parentNotifier->GetLOKNotifier()); } void SvxCurrencyList_Impl::dispose() { + ReleaseLOKNotifier(); m_xControl.clear(); m_pCurrencyLb.disposeAndClear(); ToolbarPopup::dispose(); } +void SvxCurrencyList_Impl::PixelInvalidate(const tools::Rectangle* pRectangle) +{ + const vcl::ILibreOfficeKitNotifier* pNotifier = GetLOKNotifier(); + if (pNotifier && pRectangle && GetPopUpWindowLOKId() != 0) + { + std::vector<vcl::LOKPayloadItem> aPayload; + aPayload.push_back(std::make_pair(OString("rectangle"), pRectangle->toString())); + pNotifier->notifyWindow(GetPopUpWindowLOKId(), "invalidate", aPayload); + } + svtools::ToolbarPopup::PixelInvalidate(pRectangle); +} + SvxLineWindow_Impl::SvxLineWindow_Impl( svt::ToolboxController& rController, vcl::Window* pParentWindow ) : ToolbarPopup( rController.getFrameInterface(), pParentWindow, WB_STDPOPUP | WB_MOVEABLE | WB_CLOSEABLE ), m_aLineStyleLb( VclPtr<LineListBox>::Create(this) ), |