Revert "Allow WM_SYSKEYDOWN to still be processed by MSWDefWindowProc, even if"

This reverts commit e771b7e4ac5c7f73a579f7329ce15e2d6710670d.

Don't always pass WM_SYSKEYDOWN to the system for processing as this can
be undesirable: e.g. inside a dialog, any Alt-X key presses with X not
being a mnemonic character result in a beep from IsDialogMessage().
Handle events for the system keys in the same way as for the normal
ones, i.e. let the system process them only if they're not handled by
the application.

This is incompatible with the previous wxMSW behaviour, but compatible
with the other ports and makes more sense, so it seems to be worth it,
on balance.
This commit is contained in:
Vadim Zeitlin 2018-06-23 23:46:10 +02:00
parent fe6ebc528d
commit d1175c00e1
2 changed files with 6 additions and 2 deletions

View File

@ -42,6 +42,12 @@ Changes in behaviour not resulting in compilation errors
anymore and GetOrCreateAccessible() may return NULL, indicating that native
system-provided accessibility should be used.
- wxMSW port doesn't always let the system process WM_SYSKEYDOWN events any
more, make sure to call event.Skip() in your wxEVT_KEY_DOWN and/or wxEVT_CHAR
event handlers if you want the standard key combinations such as Alt-Space or
Alt-F4 to work.
Changes in behaviour which may result in build errors
-----------------------------------------------------

View File

@ -3258,8 +3258,6 @@ wxWindowMSW::MSWHandleMessage(WXLRESULT *result,
processed = HandleWindowEvent(event);
}
}
if (message == WM_SYSKEYDOWN) // Let Windows still handle the SYSKEYs
processed = false;
break;
case WM_SYSKEYUP: