Send generic wxListCtrl wxEVT_COMMAND_LIST_KEY_DOWN events from OnKeyDown rather than OnChar. Also remove the HasCurrent check. These changes bring the generic control into line with the control under wxMSW. Re-enable the previously failing unit test and document that the key down event might not have a valid item associated with it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65586 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
2f0312f0c4
commit
92d9d10f80
@ -1085,7 +1085,7 @@ protected:
|
||||
@event{EVT_LIST_ITEM_RIGHT_CLICK(id, func)}
|
||||
The right mouse button has been clicked on an item.
|
||||
@event{EVT_LIST_KEY_DOWN(id, func)}
|
||||
A key has been pressed.
|
||||
A key has been pressed. GetIndex() may be -1 if no item is selected.
|
||||
@event{EVT_LIST_INSERT_ITEM(id, func)}
|
||||
An item has been inserted.
|
||||
@event{EVT_LIST_COL_CLICK(id, func)}
|
||||
|
@ -2682,6 +2682,16 @@ void wxListMainWindow::OnKeyDown( wxKeyEvent &event )
|
||||
if (parent->GetEventHandler()->ProcessEvent( ke ))
|
||||
return;
|
||||
|
||||
// send a list event
|
||||
wxListEvent le( wxEVT_COMMAND_LIST_KEY_DOWN, parent->GetId() );
|
||||
le.m_itemIndex = m_current;
|
||||
if (HasCurrent())
|
||||
GetLine(m_current)->GetItem( 0, le.m_item );
|
||||
le.m_code = event.GetKeyCode();
|
||||
le.SetEventObject( parent );
|
||||
if (parent->GetEventHandler()->ProcessEvent( le ))
|
||||
return;
|
||||
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
@ -2701,17 +2711,6 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
|
||||
{
|
||||
wxWindow *parent = GetParent();
|
||||
|
||||
// send a list_key event up
|
||||
if ( HasCurrent() )
|
||||
{
|
||||
wxListEvent le( wxEVT_COMMAND_LIST_KEY_DOWN, GetParent()->GetId() );
|
||||
le.m_itemIndex = m_current;
|
||||
GetLine(m_current)->GetItem( 0, le.m_item );
|
||||
le.m_code = event.GetKeyCode();
|
||||
le.SetEventObject( parent );
|
||||
parent->GetEventHandler()->ProcessEvent( le );
|
||||
}
|
||||
|
||||
// propagate the char event upwards
|
||||
wxKeyEvent ke(event);
|
||||
ke.SetEventObject( parent );
|
||||
|
@ -228,7 +228,7 @@ void ListBaseTestCase::ItemClick()
|
||||
|
||||
void ListBaseTestCase::KeyDown()
|
||||
{
|
||||
#if wxUSE_UIACTIONSIMULATOR && !defined(__WXGTK__)
|
||||
#if wxUSE_UIACTIONSIMULATOR
|
||||
wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(),
|
||||
wxTestableFrame);
|
||||
|
||||
@ -239,8 +239,6 @@ void ListBaseTestCase::KeyDown()
|
||||
wxUIActionSimulator sim;
|
||||
|
||||
list->SetFocus();
|
||||
wxYield();
|
||||
|
||||
sim.Text("aAbB");
|
||||
wxYield();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user