diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/vcl/dockwin.hxx | 16 |
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; |