From: Robin Dunn Date: Tue, 31 Aug 2004 16:31:39 +0000 (+0000) Subject: Fixes to allow DoGetBestSize to work before CreateGrid has been called. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/b39a5dc41e7c9ae21e131a637671cf9057a693bd Fixes to allow DoGetBestSize to work before CreateGrid has been called. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp index cc293fb374..d1481ccd41 100644 --- a/src/generic/grid.cpp +++ b/src/generic/grid.cpp @@ -3855,9 +3855,14 @@ wxGrid::wxGrid( wxWindow *parent, m_colMinWidths(GRID_HASH_SIZE), m_rowMinHeights(GRID_HASH_SIZE) { - // Can't use SetBestFittingSize here to avoid a crash as CreateGrid hasn't - // been called yet. - SetMinSize(size); + // in order to make sure that a size event is not + // trigerred in a unfinished state + m_cornerLabelWin = NULL ; + m_rowLabelWin = NULL ; + m_colLabelWin = NULL ; + m_gridWin = NULL ; + + SetBestFittingSize(size); Create(); } @@ -3872,9 +3877,7 @@ bool wxGrid::Create(wxWindow *parent, wxWindowID id, m_colMinWidths = wxLongToLongHashMap(GRID_HASH_SIZE) ; m_rowMinHeights = wxLongToLongHashMap(GRID_HASH_SIZE) ; - // Can't use SetBestFittingSize here to avoid a crash as CreateGrid hasn't - // been called yet. - SetMinSize(size); + SetBestFittingSize(size); Create() ; return true; @@ -9885,8 +9888,10 @@ wxSize wxGrid::DoGetBestSize() const // of the scrollbars, is there any magic incantaion for that? int xpu, ypu; GetScrollPixelsPerUnit(&xpu, &ypu); - width += 1 + xpu - (width % xpu); - height += 1 + ypu - (height % ypu); + if (xpu) + width += 1 + xpu - (width % xpu); + if (ypu) + height += 1 + ypu - (height % ypu); // limit to 1/4 of the screen size int maxwidth, maxheight;