fix bug lp:1319839
This commit is contained in:
parent
f31f92e45e
commit
2fa082f698
|
@ -166,7 +166,9 @@ public:
|
||||||
|
|
||||||
bool DeleteRows( size_t aPos, size_t aNumRows )
|
bool DeleteRows( size_t aPos, size_t aNumRows )
|
||||||
{
|
{
|
||||||
if( aPos + aNumRows <= rows.size() )
|
// aPos may be a large positive, e.g. size_t(-1), and the sum of
|
||||||
|
// aPos+aNumRows may wrap here, so both ends of the range are tested.
|
||||||
|
if( aPos < rows.size() && aPos + aNumRows <= rows.size() )
|
||||||
{
|
{
|
||||||
ROWS_ITER start = rows.begin() + aPos;
|
ROWS_ITER start = rows.begin() + aPos;
|
||||||
rows.erase( start, start + aNumRows );
|
rows.erase( start, start + aNumRows );
|
||||||
|
@ -512,11 +514,14 @@ private:
|
||||||
int rowCount = m_cur_grid->GetNumberRows();
|
int rowCount = m_cur_grid->GetNumberRows();
|
||||||
int curRow = getCursorRow();
|
int curRow = getCursorRow();
|
||||||
|
|
||||||
|
if( curRow >= 0 )
|
||||||
|
{
|
||||||
m_cur_grid->DeleteRows( curRow );
|
m_cur_grid->DeleteRows( curRow );
|
||||||
|
|
||||||
if( curRow && curRow == rowCount - 1 )
|
if( curRow && curRow == rowCount - 1 )
|
||||||
m_cur_grid->SetGridCursor( curRow-1, getCursorCol() );
|
m_cur_grid->SetGridCursor( curRow-1, getCursorCol() );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void moveUpHandler( wxMouseEvent& event )
|
void moveUpHandler( wxMouseEvent& event )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue