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:
parent
b445b6a76e
commit
9e68717c92
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user