F4 key also toggles combobox popup under MSW

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40580 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2006-08-13 00:41:42 +00:00
parent b445b6a76e
commit 9e68717c92

View File

@ -531,25 +531,34 @@ wxCoord wxComboCtrl::GetNativeTextIndent() const
bool wxComboCtrl::IsKeyPopupToggle(const wxKeyEvent& event) const bool wxComboCtrl::IsKeyPopupToggle(const wxKeyEvent& event) const
{ {
int keycode = event.GetKeyCode(); const bool isPopupShown = IsPopupShown();
bool isPopupShown = IsPopupShown();
if ( isPopupShown && keycode == WXK_ESCAPE ) switch ( event.GetKeyCode() )
return true;
// On XP or with writable combo in Classic,
// Alt is required, in addition to up/down, to
// show the popup.
if ( keycode == WXK_DOWN || keycode == WXK_UP )
{ {
if ( event.AltDown() || case WXK_F4:
( !isPopupShown && // F4 toggles the popup in the native comboboxes, so emulate them
HasFlag(wxCB_READONLY) && if ( !event.AltDown() )
!wxUxThemeEngine::GetIfActive() return true;
) ) break;
{
return true; case WXK_ESCAPE:
} if ( isPopupShown )
return true;
break;
case WXK_DOWN:
case WXK_UP:
// On XP or with writable combo in Classic, arrows don't open the
// popup but Alt-arrow does
if ( event.AltDown() ||
( !isPopupShown &&
HasFlag(wxCB_READONLY) &&
!wxUxThemeEngine::GetIfActive()
) )
{
return true;
}
break;
} }
return false; return false;