need to AdjustScrollbars() after changing the virtual size in CalcDimensions()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55628 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-09-14 23:06:36 +00:00
parent 69367c566e
commit ace8d849d4

View File

@@ -96,7 +96,7 @@ struct wxGridCellWithAttr
{ {
if (attr != new_attr) if (attr != new_attr)
{ {
// "Delete" (i.e. DecRef) the old attribute. // "Delete" (i.e. DecRef) the old attribute.
attr->DecRef(); attr->DecRef();
attr = new_attr; attr = new_attr;
// Take ownership of the new attribute, i.e. no IncRef. // Take ownership of the new attribute, i.e. no IncRef.
@@ -4688,10 +4688,11 @@ void wxGrid::CalcDimensions()
if ( y >= h ) if ( y >= h )
y = wxMax( h - 1, 0 ); y = wxMax( h - 1, 0 );
// do set scrollbar parameters // update the virtual size and refresh the scrollbars to reflect it
SetScrollRate(m_scrollLineX, m_scrollLineY); SetScrollRate(m_scrollLineX, m_scrollLineY);
m_gridWin->SetVirtualSize(w, h); m_gridWin->SetVirtualSize(w, h);
Scroll(x, y); Scroll(x, y);
AdjustScrollbars();
// if our OnSize() hadn't been called (it would if we have scrollbars), we // if our OnSize() hadn't been called (it would if we have scrollbars), we
// still must reposition the children // still must reposition the children
@@ -9931,7 +9932,7 @@ void wxGrid::ClearAttrCache()
// wxSafeDecRec(...) might cause event processing that accesses // wxSafeDecRec(...) might cause event processing that accesses
// the cached attribute, if one exists (e.g. by deleting the // the cached attribute, if one exists (e.g. by deleting the
// editor stored within the attribute). Therefore it is important // editor stored within the attribute). Therefore it is important
// to invalidate the cache before calling wxSafeDecRef! // to invalidate the cache before calling wxSafeDecRef!
wxSafeDecRef(oldAttr); wxSafeDecRef(oldAttr);
} }
} }
@@ -10346,9 +10347,9 @@ void wxGrid::SetRowSize( int row, int height )
wxClientDC dc(m_rowLabelWin); wxClientDC dc(m_rowLabelWin);
dc.SetFont(GetLabelFont()); dc.SetFont(GetLabelFont());
StringToLines(GetRowLabelValue( row ), lines); StringToLines(GetRowLabelValue( row ), lines);
GetTextBoxSize( dc, lines, &w, &h ); GetTextBoxSize( dc, lines, &w, &h );
//check that it is not less than the minimal height //check that it is not less than the minimal height
height = wxMax(h, GetRowMinimalAcceptableHeight()); height = wxMax(h, GetRowMinimalAcceptableHeight());
} }
// See comment in SetColSize // See comment in SetColSize
@@ -10409,8 +10410,8 @@ void wxGrid::SetColSize( int col, int width )
else else
GetTextBoxSize( dc, lines, &h, &w ); GetTextBoxSize( dc, lines, &h, &w );
width = w + 6; width = w + 6;
//check that it is not less than the minimal width //check that it is not less than the minimal width
width = wxMax(width, GetColMinimalAcceptableWidth()); width = wxMax(width, GetColMinimalAcceptableWidth());
} }
// should we check that it's bigger than GetColMinimalWidth(col) here? // should we check that it's bigger than GetColMinimalWidth(col) here?