+ if ( keycode == WXK_TAB )
+ {
+ wxNavigationKeyEvent evt;
+ evt.SetFlags(wxNavigationKeyEvent::FromTab|
+ (!event.ShiftDown() ? wxNavigationKeyEvent::IsForward
+ : wxNavigationKeyEvent::IsBackward));
+ evt.SetEventObject(this);
+ GetParent()->GetEventHandler()->AddPendingEvent(evt);
+ return;
+ }
+
+ if ( IsKeyPopupToggle(event) )
+ {
+ OnButtonClick();
+ return;
+ }
+
+ int comboStyle = GetWindowStyle();
+ wxComboPopup* popupInterface = GetPopupControl();
+
+ if ( !popupInterface )
+ {
+ event.Skip();
+ return;
+ }
+
+ if ( (comboStyle & wxCB_READONLY) ||
+ (keycode != WXK_RIGHT && keycode != WXK_LEFT) )
+ {
+ popupInterface->OnComboKeyEvent(event);
+ }
+ else
+ event.Skip();
+ }
+}
+
+void wxComboCtrlBase::OnFocusEvent( wxFocusEvent& event )
+{
+ if ( event.GetEventType() == wxEVT_SET_FOCUS )