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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user