summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPranam Lashkari <lpranam@collabora.com>2021-03-02 06:04:40 +0530
committerPranam Lashkari <lpranam@collabora.com>2021-03-03 14:44:04 +0100
commitf1525c89ccf2b80f284bea68bd7a62dfaaff56a4 (patch)
tree037e570082123a6469d9b4eb1383eaa6fc0335d9 /include
parent505965dd5d05e4711bf5b433b8af06e88e030962 (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 'include')
-rw-r--r--include/vcl/dockwin.hxx16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/vcl/dockwin.hxx b/include/vcl/dockwin.hxx
index d60ed99123ff..85167ebbf318 100644
--- a/include/vcl/dockwin.hxx
+++ b/include/vcl/dockwin.hxx
@@ -216,6 +216,16 @@ class VCL_DLLPUBLIC DockingWindow
class ImplData;
private:
VclPtr<FloatingWindow> mpFloatWin;
+
+ // in the case when docking window is displayed in popup mode
+ // there are 2 window instance docking window and floating window
+ // and to make things work correctly both needs to be invalidated together
+ // but unfortunatly from any docking window we don't have access to floating window notifier
+ // so we can use this mnPopUpWinId to store the floating win id when we can to use later
+ // this was primarily introduced to fix the currency popup window in calc LOK
+ // if there is any better approach
+ // FIXME
+ vcl::LOKWindowId mnLOKPopUpWinId;
VclPtr<vcl::Window> mpOldBorderWin;
std::unique_ptr<ImplData> mpImplData;
Point maFloatPos;
@@ -315,6 +325,12 @@ public:
bool IsFloatingMode() const;
FloatingWindow* GetFloatingWindow() const { return mpFloatWin; }
+ // These two methods are used when docking window is displayed in popup mode
+ // By setting this popup window id we can access floating window notifier in docking window
+ // one of the example can be found in SvxCurrencyList_Impl::PixelInvalidate
+ void SetPopUpWindowLOKId(vcl::LOKWindowId nLOKPopUpWinId) { mnLOKPopUpWinId = nLOKPopUpWinId; }
+ vcl::LOKWindowId GetPopUpWindowLOKId() const { return mnLOKPopUpWinId; }
+
void SetFloatingPos( const Point& rNewPos );
Point GetFloatingPos() const;