diff options
Diffstat (limited to 'dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx')
-rw-r--r-- | dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx b/dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx index 1a052c19007a..c39a3f6b9581 100644 --- a/dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx +++ b/dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx @@ -33,6 +33,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() @@ -42,6 +46,7 @@ OFieldDescGenWin::~OFieldDescGenWin() void OFieldDescGenWin::dispose() { + maLayoutIdle.Stop(); m_pFieldControl.disposeAndClear(); TabPage::dispose(); } @@ -53,12 +58,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 ) { |