mirror of https://github.com/encounter/SDL.git
WinRT: fallback to scancode key detection, if VirtualKey/VK detection fails
This commit is contained in:
parent
20b19aac86
commit
ed2fff6bef
|
@ -292,6 +292,7 @@ TranslateKeycode(int keycode, unsigned int nativeScancode)
|
||||||
/* Try to get a documented, WinRT, 'VirtualKey' next (as documented at
|
/* Try to get a documented, WinRT, 'VirtualKey' next (as documented at
|
||||||
http://msdn.microsoft.com/en-us/library/windows/apps/windows.system.virtualkey.aspx ).
|
http://msdn.microsoft.com/en-us/library/windows/apps/windows.system.virtualkey.aspx ).
|
||||||
If that fails, fall back to a Win32 virtual key.
|
If that fails, fall back to a Win32 virtual key.
|
||||||
|
If that fails, attempt to fall back to a scancode-derived key.
|
||||||
*/
|
*/
|
||||||
if (keycode < SDL_arraysize(WinRT_Official_Keycodes)) {
|
if (keycode < SDL_arraysize(WinRT_Official_Keycodes)) {
|
||||||
scancode = WinRT_Official_Keycodes[keycode];
|
scancode = WinRT_Official_Keycodes[keycode];
|
||||||
|
@ -299,6 +300,11 @@ TranslateKeycode(int keycode, unsigned int nativeScancode)
|
||||||
if (scancode == SDL_SCANCODE_UNKNOWN) {
|
if (scancode == SDL_SCANCODE_UNKNOWN) {
|
||||||
scancode = WINRT_TranslateUnofficialKeycode(keycode);
|
scancode = WINRT_TranslateUnofficialKeycode(keycode);
|
||||||
}
|
}
|
||||||
|
if (scancode == SDL_SCANCODE_UNKNOWN) {
|
||||||
|
if (nativeScancode < SDL_arraysize(windows_scancode_table)) {
|
||||||
|
scancode = windows_scancode_table[nativeScancode];
|
||||||
|
}
|
||||||
|
}
|
||||||
if (scancode == SDL_SCANCODE_UNKNOWN) {
|
if (scancode == SDL_SCANCODE_UNKNOWN) {
|
||||||
SDL_Log("WinRT TranslateKeycode, unknown keycode=%d\n", (int)keycode);
|
SDL_Log("WinRT TranslateKeycode, unknown keycode=%d\n", (int)keycode);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue