]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/grid.cpp
Applied patch to avoid g_lib wanrings.
[wxWidgets.git] / src / generic / grid.cpp
index cc293fb374bf2cfa4cfbfdc384ca7f99e7aa9705..b712c67c1d66efbf67dd9807088f3cb35f4ba30a 100644 (file)
@@ -1461,18 +1461,12 @@ bool wxGridCellChoiceEditor::EndEdit(int row, int col,
                                      wxGrid* grid)
 {
     wxString value = Combo()->GetValue();
-    bool changed = value != m_startValue;
-
-    if ( changed )
-        grid->GetTable()->SetValue(row, col, value);
+    if ( value == m_startValue )
+        return false;
 
-    m_startValue = wxEmptyString;
-    if (m_allowOthers)
-        Combo()->SetValue(m_startValue);
-    else
-        Combo()->SetSelection(0);
+    grid->GetTable()->SetValue(row, col, value);
 
-    return changed;
+    return true;
 }
 
 void wxGridCellChoiceEditor::Reset()
@@ -3855,10 +3849,8 @@ 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);  
     Create();
+    SetBestFittingSize(size);
 }
 
 bool wxGrid::Create(wxWindow *parent, wxWindowID id,
@@ -3872,10 +3864,8 @@ 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);  
     Create() ;
+    SetBestFittingSize(size);
 
     return true;
 }
@@ -9885,8 +9875,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;