From 6c2125fb972035375f4706c037e56a3b899d0c90 Mon Sep 17 00:00:00 2001 From: Victor Homyakov Date: Wed, 22 Oct 2014 19:13:04 +0300 Subject: [PATCH] Code cleanup --- dist/recaps.exe | Bin 66560 -> 66560 bytes recaps.cpp | 64 ++++++++++++++++++++++++++---------------------- 2 files changed, 35 insertions(+), 29 deletions(-) diff --git a/dist/recaps.exe b/dist/recaps.exe index 2f93740391589f234f4366495066a0f376384cb7..befa5fc39de58a53b2320bae7a57850b961b1522 100644 GIT binary patch delta 4586 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 N(NVP9`miqOe*lOFu>$}A delta 4560 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 tg8#44H0C_>BXf_zYyca~YV0`nY4#^}0LOAU+ 0; +} + /////////////////////////////////////////////////////////////////////////////// // A LowLevelHookProc implementation that captures the CapsLock key LRESULT CALLBACK LowLevelHookProc(int nCode, WPARAM wParam, LPARAM lParam) { @@ -377,21 +384,20 @@ LRESULT CALLBACK LowLevelHookProc(int nCode, WPARAM wParam, LPARAM lParam) { // ignore injected keystrokes if ((data->flags & LLKHF_INJECTED) == 0) { - BOOL ctrl = (GetKeyState(VK_CONTROL) & 0x80000000) > 0; - BOOL caps = data->vkCode == VK_CAPITAL && wParam == WM_KEYDOWN; - - if (caps && !ctrl) { - // Handle CapsLock - only switch current layout - SwitchLayout(); - return 1; - } else if (caps && ctrl) { - // Handle Ctrl-CapsLock - switch current layout and convert text in current field - // We start SwitchLayoutAndConvertSelected in another thread since it simulates - // keystrokes to copy and paste the teset which call back into this hook. - // That isn't good.. - _beginthread(SwitchAndConvert, 0, NULL); + BOOL caps = wParam == WM_KEYDOWN && data->vkCode == VK_CAPITAL; + if (caps) { + if (IsKeyPressed(VK_CONTROL)) { + // Handle Ctrl-CapsLock - switch current layout and convert text in current field + // We start SwitchLayoutAndConvertSelected in another thread since it simulates + // keystrokes to copy and paste the teset which call back into this hook. + // That isn't good. + _beginthread(SwitchAndConvert, 0, NULL); + } else { + // Handle CapsLock - only switch current layout + SwitchLayout(); + } return 1; // prevent windows from handling the keystroke - } + } } return CallNextHookEx(g_hHook, nCode, wParam, lParam);