X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6d30807295d16ad7bddd2ef03b7dbf91a7a6335a..143318ddbb005602b600216cca621439b771f889:/src/generic/grid.cpp?ds=sidebyside diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp index cc293fb374..b712c67c1d 100644 --- a/src/generic/grid.cpp +++ b/src/generic/grid.cpp @@ -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;