Source: src/video/win32/wincommon/SDL_sysevents.c
Function: WIN_GetKeyboardState(void)
Constants VK_LSHIFT and VK_RSHIFT works only in WinNT,
in Win9x it should be VK_SHIFT
The same is for VK_LCONTROL and VK_RCONTROL (that should be VK_CONTROL),
and obviosly for VK_LMENU and VK_RMENU (that should be VK_MENU).
How can I add a platform check to distinguish between the two cases?
And in the same function there’s another thing that doesn’t work:
if ( keyboard[VK_NUMLOCK] & 0x80) {
state |= KMOD_NUM;
}
if ( keyboard[VK_CAPITAL] & 0x80) {
state |= KMOD_CAPS;
}
because the 0x80 mask is for the PRESS status, and for these keys
the correct check must be on mask 0x01 (TOGGLE status).
Thanks for any feedback.
Enzo