Modified wxGrid::SetCurrentCell() to fix problem under wxMSW where

the grid was spending time drawing cells outside the visible area.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7529 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Michael Bedward
2000-06-05 10:04:55 +00:00
parent 5902841d30
commit d9ca264808

View File

@@ -5360,21 +5360,24 @@ void wxGrid::SetCurrentCell( const wxGridCellCoords& coords )
HideCellEditControl();
DisableCellEditControl();
// Clear the old current cell highlight
wxRect r = BlockToDeviceRect(m_currentCellCoords, m_currentCellCoords);
if ( !m_gridLinesEnabled )
wxRect r;
if ( IsVisible( m_currentCellCoords ) )
{
r.x--;
r.y--;
r.width++;
r.height++;
r = BlockToDeviceRect(m_currentCellCoords, m_currentCellCoords);
CalcCellsExposed( r );
if ( !m_gridLinesEnabled )
{
r.x--;
r.y--;
r.width++;
r.height++;
}
// Otherwise refresh redraws the highlight!
m_currentCellCoords = coords;
}
// Otherwise refresh redraws the highlight!
m_currentCellCoords = coords;
CalcCellsExposed( r );
DrawGridCellArea(dc);
DrawAllGridLines( dc, r );
}