mirror of
https://github.com/libretro/RetroArch.git
synced 2025-02-21 18:21:51 +00:00
(WIN32) Fix Pause vs NumLock in dinput/sdl2 (#15533)
This commit is contained in:
parent
fbd8498686
commit
cf42a200b4
@ -1081,9 +1081,16 @@ static LRESULT CALLBACK wnd_proc_common_internal(HWND hwnd,
|
||||
uint16_t mod = 0;
|
||||
unsigned keycode = 0;
|
||||
unsigned keysym = (lparam >> 16) & 0xff;
|
||||
bool extended = (lparam >> 24) & 0x1;
|
||||
|
||||
/* extended keys will map to dinput if the high bit is set */
|
||||
if ((lparam >> 24 & 0x1))
|
||||
if (extended)
|
||||
keysym |= 0x80;
|
||||
|
||||
/* NumLock vs Pause correction */
|
||||
if (GetKeyState(VK_NUMLOCK) & 0x80 && extended)
|
||||
keysym &= ~0x80;
|
||||
else if (GetKeyState(VK_PAUSE) & 0x80 && !extended)
|
||||
keysym |= 0x80;
|
||||
|
||||
keycode = input_keymaps_translate_keysym_to_rk(keysym);
|
||||
@ -1327,9 +1334,16 @@ static LRESULT CALLBACK wnd_proc_common_dinput_internal(HWND hwnd,
|
||||
uint16_t mod = 0;
|
||||
unsigned keycode = 0;
|
||||
unsigned keysym = (lparam >> 16) & 0xff;
|
||||
bool extended = (lparam >> 24) & 0x1;
|
||||
|
||||
/* extended keys will map to dinput if the high bit is set */
|
||||
if ((lparam >> 24 & 0x1))
|
||||
if (extended)
|
||||
keysym |= 0x80;
|
||||
|
||||
/* NumLock vs Pause correction */
|
||||
if (GetKeyState(VK_NUMLOCK) & 0x80 && extended)
|
||||
keysym &= ~0x80;
|
||||
else if (GetKeyState(VK_PAUSE) & 0x80 && !extended)
|
||||
keysym |= 0x80;
|
||||
|
||||
keycode = input_keymaps_translate_keysym_to_rk(keysym);
|
||||
|
Loading…
x
Reference in New Issue
Block a user