diff options
Diffstat (limited to 'dbaccess/source')
-rw-r--r-- | dbaccess/source/ui/control/VertSplitView.cxx | 18 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/VertSplitView.hxx | 4 |
2 files changed, 19 insertions, 3 deletions
diff --git a/dbaccess/source/ui/control/VertSplitView.cxx b/dbaccess/source/ui/control/VertSplitView.cxx index 956cec1e887e..4f44d180114e 100644 --- a/dbaccess/source/ui/control/VertSplitView.cxx +++ b/dbaccess/source/ui/control/VertSplitView.cxx @@ -32,6 +32,7 @@ OSplitterView::OSplitterView(vcl::Window* _pParent) : Window(_pParent,WB_DIALOGC ,m_pSplitter( nullptr ) ,m_pLeft(nullptr) ,m_pRight(nullptr) + ,m_pResizeId(nullptr) { ImplInitSettings(); } @@ -43,6 +44,11 @@ OSplitterView::~OSplitterView() void OSplitterView::dispose() { + if (m_pResizeId) + { + RemoveUserEvent(m_pResizeId); + m_pResizeId = nullptr; + } m_pSplitter.clear(); m_pLeft.clear(); m_pRight.clear(); @@ -102,9 +108,10 @@ void OSplitterView::GetFocus() m_pRight->GrabFocus(); } -void OSplitterView::Resize() +IMPL_LINK_NOARG(OSplitterView, ResizeHdl, void*, void) { - Window::Resize(); + m_pResizeId = nullptr; + OSL_ENSURE( m_pRight, "No init called!"); Point aSplitPos; @@ -142,7 +149,14 @@ void OSplitterView::Resize() m_pRight->setPosSizePixel( aSplitPos.X(), aPlaygroundPos.Y() + aSplitPos.Y() + aSplitSize.Height(), aPlaygroundSize.Width() , aPlaygroundSize.Height() - aSplitSize.Height() - aSplitPos.Y()); } +} +void OSplitterView::Resize() +{ + Window::Resize(); + if (m_pResizeId) + RemoveUserEvent(m_pResizeId); + m_pResizeId = PostUserEvent(LINK(this, OSplitterView, ResizeHdl), this, true); } void OSplitterView::set(vcl::Window* _pRight,Window* _pLeft) diff --git a/dbaccess/source/ui/inc/VertSplitView.hxx b/dbaccess/source/ui/inc/VertSplitView.hxx index 1ccf6a0683f1..25a0a6442e81 100644 --- a/dbaccess/source/ui/inc/VertSplitView.hxx +++ b/dbaccess/source/ui/inc/VertSplitView.hxx @@ -30,9 +30,11 @@ namespace dbaui VclPtr<Splitter> m_pSplitter; VclPtr<vcl::Window> m_pLeft; VclPtr<vcl::Window> m_pRight; + ImplSVEvent *m_pResizeId; void ImplInitSettings(); - DECL_LINK( SplitHdl, Splitter*, void ); + DECL_LINK(SplitHdl, Splitter*, void); + DECL_LINK(ResizeHdl, void*, void); protected: virtual void DataChanged(const DataChangedEvent& rDCEvt) override; public: |