mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +01:00
port alt-key-stuck fix to new keyboard hook
This commit is contained in:
parent
eb5957008f
commit
60a66776a6
@ -39,13 +39,20 @@ void keyboard_hook_exit()
|
||||
|
||||
LRESULT CALLBACK keyboard_hook_proc(int code, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (code < 0 || !wParam) // code != HC_ACTION ||
|
||||
if (code < 0 || !wParam)
|
||||
return CallNextHookEx(g_keyboard_hook, code, wParam, lParam);
|
||||
|
||||
BOOL alt_down = (lParam & (1 << 29));
|
||||
BOOL alt_down = !!(lParam & (1 << 29));
|
||||
BOOL key_down = !(lParam & (1 << 30));
|
||||
BOOL key_up = !!(lParam & (1 << 31));
|
||||
|
||||
//TRACE("VK_MENU - wParam=%u, key_down=%u, key_up=%u, alt_down=%u\n", wParam, key_down, key_up, alt_down);
|
||||
|
||||
if (wParam == VK_MENU && (key_up || key_down)) /* Fix for alt key being stuck on alt+tab in some games */
|
||||
{
|
||||
g_ddraw.alt_key_down = alt_down;
|
||||
}
|
||||
|
||||
if (wParam == g_config.hotkeys.toggle_fullscreen && alt_down)
|
||||
{
|
||||
if (key_down)
|
||||
|
@ -707,7 +707,10 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
||||
}
|
||||
|
||||
if (wParam && g_ddraw.alt_key_down && !g_config.releasealt)
|
||||
{
|
||||
PostMessageA(g_ddraw.hwnd, WM_SYSKEYUP, VK_MENU, 0);
|
||||
g_ddraw.alt_key_down = FALSE;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -758,20 +761,10 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
||||
}
|
||||
case WM_SYSKEYDOWN:
|
||||
{
|
||||
if (wParam == VK_MENU)
|
||||
{
|
||||
g_ddraw.alt_key_down = TRUE;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case WM_SYSKEYUP:
|
||||
{
|
||||
if (wParam == VK_MENU)
|
||||
{
|
||||
g_ddraw.alt_key_down = FALSE;
|
||||
}
|
||||
|
||||
if (wParam == VK_TAB || (wParam && wParam == g_config.hotkeys.toggle_fullscreen))
|
||||
{
|
||||
return DefWindowProc(hWnd, uMsg, wParam, lParam);
|
||||
|
Loading…
x
Reference in New Issue
Block a user