]> git.saurik.com Git - wxWidgets.git/commitdiff
Fixes to allow DoGetBestSize to work before CreateGrid has been called.
authorRobin Dunn <robin@alldunn.com>
Tue, 31 Aug 2004 16:31:39 +0000 (16:31 +0000)
committerRobin Dunn <robin@alldunn.com>
Tue, 31 Aug 2004 16:31:39 +0000 (16:31 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/generic/grid.cpp

index cc293fb374bf2cfa4cfbfdc384ca7f99e7aa9705..d1481ccd4113c70887695d3fa09287f1f3dd352a 100644 (file)
@@ -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;