reduce flicker in header window when deleting items and let space select items even in single selection mode

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2001-08-14 11:51:24 +00:00
parent c40ce5ce77
commit 70541533c8

View File

@ -9,9 +9,10 @@
/////////////////////////////////////////////////////////////////////////////
/*
TODO for better virtual list control support:
TODO
1. we need to implement searching/sorting somehow
1. we need to implement searching/sorting for virtual controls somehow
2. when changing selection the lines are refreshed twice
*/
// ============================================================================
@ -3172,11 +3173,16 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
le.m_itemIndex = m_current;
GetLine(m_current)->GetItem( 0, le.m_item );
GetParent()->GetEventHandler()->ProcessEvent( le );
if ( IsHighlighted(m_current) )
{
// don't unselect the item in single selection mode
break;
}
//else: select it in ReverseHighlight() below if unselected
}
else
{
ReverseHighlight(m_current);
}
ReverseHighlight(m_current);
break;
case WXK_RETURN:
@ -3798,7 +3804,7 @@ void wxListMainWindow::RefreshAll()
Refresh();
wxListHeaderWindow *headerWin = GetListCtrl()->m_headerWin;
if ( headerWin )
if ( headerWin && headerWin->m_dirty )
{
headerWin->m_dirty = FALSE;
headerWin->Refresh();
@ -3898,6 +3904,7 @@ void wxListMainWindow::DeleteItem( long lindex )
m_lines.RemoveAt( index );
}
// we need to refresh the (vert) scrollbar as the number of items changed
m_dirty = TRUE;
SendNotify( index, wxEVT_COMMAND_LIST_DELETE_ITEM );