diff options
author | Pranam Lashkari <lpranam@collabora.com> | 2021-03-02 06:04:40 +0530 |
---|---|---|
committer | Pranam Lashkari <lpranam@collabora.com> | 2021-03-03 14:44:04 +0100 |
commit | f1525c89ccf2b80f284bea68bd7a62dfaaff56a4 (patch) | |
tree | 037e570082123a6469d9b4eb1383eaa6fc0335d9 /svx | |
parent | 505965dd5d05e4711bf5b433b8af06e88e030962 (diff) |
LOK: added missing PixelInvalidate method for currency list
when docking window is displayed in popup mode,
there are two windows created docking window and floating window,
to make the this window work correctly with LOK,
we have to invalidate the floating window to update floating window,
as well as docking window.
Change-Id: Ia1b4220646664aa0666a24e34fc14bf41421f9e2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111762
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Diffstat (limited to 'svx')
-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 50e3f6760867..57cca78867f4 100644 --- a/svx/source/tbxctrls/tbcontrl.cxx +++ b/svx/source/tbxctrls/tbcontrl.cxx @@ -645,6 +645,8 @@ public: LanguageType& eSelectLanguage ); virtual ~SvxCurrencyList_Impl() override { disposeOnce(); } virtual void dispose() override; + + void PixelInvalidate(const tools::Rectangle* pRectangle) override; }; class SvxStyleToolBoxControl; @@ -2685,15 +2687,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) ), |