summaryrefslogtreecommitdiff
path: root/dbaccess/source
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/source')
-rw-r--r--dbaccess/source/ui/control/VertSplitView.cxx18
-rw-r--r--dbaccess/source/ui/inc/VertSplitView.hxx4
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: