X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ba808e1178c352621456baeb229847d733142d32..8aa7f32da24c5e9de428d04bb659c80222b14947:/src/generic/grid.cpp diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp index dd23379a8c..7d98bcb1ea 100644 --- a/src/generic/grid.cpp +++ b/src/generic/grid.cpp @@ -4665,17 +4665,26 @@ void wxGrid::CalcWindowSizes() } } + // the grid may be too small to have enough space for the labels yet, don't + // size the windows to negative sizes in this case + int gw = cw - m_rowLabelWidth; + int gh = ch - m_colLabelHeight; + if (gw < 0) + gw = 0; + if (gh < 0) + gh = 0; + if ( m_cornerLabelWin && m_cornerLabelWin->IsShown() ) m_cornerLabelWin->SetSize( 0, 0, m_rowLabelWidth, m_colLabelHeight ); if ( m_colLabelWin && m_colLabelWin->IsShown() ) - m_colLabelWin->SetSize( m_rowLabelWidth, 0, cw - m_rowLabelWidth, m_colLabelHeight ); + m_colLabelWin->SetSize( m_rowLabelWidth, 0, gw, m_colLabelHeight ); if ( m_rowLabelWin && m_rowLabelWin->IsShown() ) - m_rowLabelWin->SetSize( 0, m_colLabelHeight, m_rowLabelWidth, ch - m_colLabelHeight ); + m_rowLabelWin->SetSize( 0, m_colLabelHeight, m_rowLabelWidth, gh ); if ( m_gridWin && m_gridWin->IsShown() ) - m_gridWin->SetSize( m_rowLabelWidth, m_colLabelHeight, cw - m_rowLabelWidth, ch - m_colLabelHeight ); + m_gridWin->SetSize( m_rowLabelWidth, m_colLabelHeight, gw, gh ); } // this is called when the grid table sends a message @@ -8097,6 +8106,7 @@ void wxGrid::DrawTextRectangle(wxDC& dc, // Split multi-line text up into an array of strings. // Any existing contents of the string array are preserved. // +// TODO: refactor wxTextFile::Read() and reuse the same code from here void wxGrid::StringToLines( const wxString& value, wxArrayString& lines ) const { int startPos = 0; @@ -8117,15 +8127,15 @@ void wxGrid::StringToLines( const wxString& value, wxArrayString& lines ) const } else { - lines.Add( value.Mid(startPos, pos) ); + lines.Add( tVal.Mid(startPos, pos) ); } startPos += pos + 1; } - if ( startPos < (int)value.length() ) + if ( startPos < (int)tVal.length() ) { - lines.Add( value.Mid( startPos ) ); + lines.Add( tVal.Mid( startPos ) ); } }