1
0
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:
FunkyFr3sh 2024-09-07 12:52:35 +02:00
parent eb5957008f
commit 60a66776a6
2 changed files with 12 additions and 12 deletions

View File

@ -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)

View File

@ -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);