summaryrefslogtreecommitdiff
path: root/dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx')
-rw-r--r--dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx24
1 files changed, 23 insertions, 1 deletions
diff --git a/dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx b/dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx
index bc9486b0a52c..9581246cf5e0 100644
--- a/dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx
+++ b/dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx
@@ -34,6 +34,10 @@ OFieldDescGenWin::OFieldDescGenWin( vcl::Window* pParent, OTableDesignHelpBar* p
m_pFieldControl = VclPtr<OTableFieldControl>::Create(this,pHelp);
m_pFieldControl->SetHelpId(HID_TAB_DESIGN_FIELDCONTROL);
m_pFieldControl->Show();
+
+ maLayoutIdle.SetPriority(TaskPriority::RESIZE);
+ maLayoutIdle.SetInvokeHandler( LINK( this, OFieldDescGenWin, ImplHandleLayoutTimerHdl ) );
+ maLayoutIdle.SetDebugName( "OFieldDescGenWin maLayoutIdle" );
}
OFieldDescGenWin::~OFieldDescGenWin()
@@ -43,6 +47,7 @@ OFieldDescGenWin::~OFieldDescGenWin()
void OFieldDescGenWin::dispose()
{
+ maLayoutIdle.Stop();
m_pFieldControl.disposeAndClear();
TabPage::dispose();
}
@@ -54,12 +59,29 @@ void OFieldDescGenWin::Init()
m_pFieldControl->Init();
}
-void OFieldDescGenWin::Resize()
+void OFieldDescGenWin::queue_resize(StateChangedType eReason)
+{
+ TabPage::queue_resize(eReason);
+ if (!m_pFieldControl)
+ return;
+ if (maLayoutIdle.IsActive())
+ return;
+ maLayoutIdle.Start();
+}
+
+IMPL_LINK_NOARG(OFieldDescGenWin, ImplHandleLayoutTimerHdl, Timer*, void)
{
+ if (!m_pFieldControl)
+ return;
m_pFieldControl->SetPosSizePixel(Point(0,0),GetSizePixel());
m_pFieldControl->Resize();
}
+void OFieldDescGenWin::Resize()
+{
+ queue_resize();
+}
+
void OFieldDescGenWin::SetReadOnly( bool bReadOnly )
{