diff --git a/src/keyboard.c b/src/keyboard.c index feab45c..f6f7993 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -46,7 +46,7 @@ LRESULT CALLBACK keyboard_hook_proc(int code, WPARAM wParam, LPARAM lParam) 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); + //TRACE("kbhook 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 */ { @@ -61,11 +61,7 @@ LRESULT CALLBACK keyboard_hook_proc(int code, WPARAM wParam, LPARAM lParam) return 1; } - if (wParam == g_config.hotkeys.toggle_maximize && - g_config.resizable && - g_config.windowed && - !g_config.fullscreen && - alt_down) + if (wParam == g_config.hotkeys.toggle_maximize && alt_down) { if (key_down) util_toggle_maximize(); @@ -73,7 +69,7 @@ LRESULT CALLBACK keyboard_hook_proc(int code, WPARAM wParam, LPARAM lParam) return 1; } - if (g_config.homm_hack && wParam == VK_F4) /* Heroes of Might and Magic 3 and 4 */ + if (wParam == VK_F4 && g_config.homm_hack) /* Heroes of Might and Magic 3 and 4 */ { if (key_down) util_toggle_fullscreen(); @@ -81,6 +77,12 @@ LRESULT CALLBACK keyboard_hook_proc(int code, WPARAM wParam, LPARAM lParam) return 1; } + if (wParam == g_config.hotkeys.screenshot) + { + if (key_up) + ss_take_screenshot(g_ddraw.primary); + } + if (wParam == VK_CONTROL || wParam == g_config.hotkeys.unlock_cursor1) { if ((real_GetAsyncKeyState(VK_CONTROL) & 0x8000) && @@ -101,10 +103,5 @@ LRESULT CALLBACK keyboard_hook_proc(int code, WPARAM wParam, LPARAM lParam) } } - if (key_up && wParam == g_config.hotkeys.screenshot) - { - ss_take_screenshot(g_ddraw.primary); - } - return CallNextHookEx(g_keyboard_hook, code, wParam, lParam); } diff --git a/src/utils.c b/src/utils.c index 110e55a..a68b659 100644 --- a/src/utils.c +++ b/src/utils.c @@ -573,6 +573,9 @@ BOOL util_get_lowest_resolution( void util_toggle_maximize() { + if (!g_config.resizable || !g_config.windowed || g_config.fullscreen) + return; + RECT client_rc; RECT dst_rc;