Binary compatible almost correct workaround for failure to merge the

m_overflow flag


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20535 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2003-05-07 17:47:51 +00:00
parent 1b4c5c70bb
commit 268df712a3

View File

@@ -2542,12 +2542,25 @@ wxGridCellAttr *wxGridCellAttrProvider::GetAttr(int row, int col,
attr->MergeWith(attrrow); attr->MergeWith(attrrow);
attrrow->DecRef(); attrrow->DecRef();
} }
// This is a binary compatible workaround for the fact that
// wxGridCellAttr::MergeWith doesn't merge m_oveflow.
// DO NOT port this fix to 2.5, it should be done the
// Right Way there instead.
if (attrrow)
attr->SetOverflow(attrrow->GetOverflow());
if (attrcol)
attr->SetOverflow(attrcol->GetOverflow());
if (attrcell)
attr->SetOverflow(attrcell->GetOverflow());
//store merge attr if cache implemented //store merge attr if cache implemented
//attr->IncRef(); //attr->IncRef();
//m_data->m_mergeAttr.SetAttr(attr, row, col); //m_data->m_mergeAttr.SetAttr(attr, row, col);
} }
else else
{ {
// one or none is non null return it or null. // one or none is non null return it or null.
if(attrrow) attr = attrrow; if(attrrow) attr = attrrow;
if(attrcol) attr = attrcol; if(attrcol) attr = attrcol;
@@ -4761,7 +4774,7 @@ void wxGrid::ProcessRowLabelMouseEvent( wxMouseEvent& event )
else if ( event.RightDown() ) else if ( event.RightDown() )
{ {
row = YToRow(y); row = YToRow(y);
if ( row >=0 && if ( row >=0 &&
!SendEvent( wxEVT_GRID_LABEL_RIGHT_CLICK, row, -1, event ) ) !SendEvent( wxEVT_GRID_LABEL_RIGHT_CLICK, row, -1, event ) )
{ {
// no default action at the moment // no default action at the moment
@@ -7488,7 +7501,7 @@ static int CoordToRowOrCol(int coord, int defaultDist, int minDist,
if (coord < 0) if (coord < 0)
return clipToMinMax && (nMax > 0) ? 0 : -1; return clipToMinMax && (nMax > 0) ? 0 : -1;
if (!defaultDist) if (!defaultDist)
defaultDist = 1; defaultDist = 1;
@@ -7899,10 +7912,10 @@ bool wxGrid::MovePageUp()
int y = GetRowTop(row); int y = GetRowTop(row);
int newRow = internalYToRow( y - ch + 1 ); int newRow = internalYToRow( y - ch + 1 );
if ( newRow == row ) if ( newRow == row )
{ {
//row > 0 , so newrow can never be less than 0 here. //row > 0 , so newrow can never be less than 0 here.
newRow = row - 1; newRow = row - 1;
} }
@@ -7929,7 +7942,7 @@ bool wxGrid::MovePageDown()
int newRow = internalYToRow( y + ch ); int newRow = internalYToRow( y + ch );
if ( newRow == row ) if ( newRow == row )
{ {
// row < m_numRows , so newrow can't overflow here. // row < m_numRows , so newrow can't overflow here.
newRow = row + 1; newRow = row + 1;
} }