bool wxDialogBase::IsEscapeKey(const wxKeyEvent& event)
{
- // for most platforms, Esc key is used to close the dialogs
- return event.GetKeyCode() == WXK_ESCAPE &&
- event.GetModifiers() == wxMOD_NONE;
+ // For most platforms, Esc key is used to close the dialogs.
+ //
+ // Notice that we intentionally don't check for modifiers here, Shift-Esc,
+ // Alt-Esc and so on still close the dialog, typically.
+ return event.GetKeyCode() == WXK_ESCAPE;
}
void wxDialogBase::OnCharHook(wxKeyEvent& event)
{
- if ( event.GetKeyCode() == WXK_ESCAPE )
+ if ( IsEscapeKey(event) )
{
if ( SendCloseButtonClickEvent() )
{