Have wxComboCtrl respect parent's wxTAB_TRAVERSAL flag; Also cleaned up key event redirecting code

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58976 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2009-02-17 20:52:16 +00:00
parent df6007a555
commit 110d27b332

View File

@@ -584,14 +584,17 @@ void wxComboBoxExtraInputHandler::OnKey(wxKeyEvent& event)
{ {
// Let the wxComboCtrl event handler have a go first. // Let the wxComboCtrl event handler have a go first.
wxComboCtrlBase* combo = m_combo; wxComboCtrlBase* combo = m_combo;
wxObject* prevObj = event.GetEventObject();
event.SetId(combo->GetId()); wxKeyEvent redirectedEvent(event);
event.SetEventObject(combo); redirectedEvent.SetId(combo->GetId());
combo->GetEventHandler()->ProcessEvent(event); redirectedEvent.SetEventObject(combo);
event.SetId(((wxWindow*)prevObj)->GetId()); if ( !combo->GetEventHandler()->ProcessEvent(redirectedEvent) )
event.SetEventObject(prevObj); {
// Don't let TAB through to the text ctrl - looks ugly
if ( event.GetKeyCode() != WXK_TAB )
event.Skip();
}
} }
void wxComboBoxExtraInputHandler::OnFocus(wxFocusEvent& event) void wxComboBoxExtraInputHandler::OnFocus(wxFocusEvent& event)
@@ -1654,7 +1657,8 @@ void wxComboCtrlBase::OnKeyEvent(wxKeyEvent& event)
} }
else // no popup else // no popup
{ {
if ( HandleAsNavigationKey(event) ) if ( GetParent()->HasFlag(wxTAB_TRAVERSAL) &&
HandleAsNavigationKey(event) )
return; return;
if ( IsKeyPopupToggle(event) ) if ( IsKeyPopupToggle(event) )