Skip to content

Commit 18290a7

Browse files
committed
[KBSWITCH] Follow-up of reactos#8039
JIRA issue: CORE-18546
1 parent 7d8d8a6 commit 18290a7

File tree

1 file changed

+11
-4
lines changed
  • base/applications/kbswitch/kbsdll

1 file changed

+11
-4
lines changed

base/applications/kbswitch/kbsdll/kbsdll.c

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@ ShellHookProc(INT code, WPARAM wParam, LPARAM lParam)
6565
return CallNextHookEx(hShellHook, code, wParam, lParam);
6666
}
6767

68+
static inline BOOL
69+
CheckVirtualKey(UINT vKey, UINT vKey1, UINT vKey2)
70+
{
71+
return vKey == vKey1 || vKey == vKey2;
72+
}
73+
6874
static LRESULT CALLBACK
6975
KeyboardLLHook(INT code, WPARAM wParam, LPARAM lParam)
7076
{
@@ -80,10 +86,11 @@ KeyboardLLHook(INT code, WPARAM wParam, LPARAM lParam)
8086
BOOL bAltPressed = GetAsyncKeyState(VK_MENU) < 0;
8187
BOOL bCtrlPressed = GetAsyncKeyState(VK_CONTROL) < 0;
8288
// Detect Alt+Shift and Ctrl+Shift
83-
if ((pKbStruct->vkCode == VK_SHIFT && bAltPressed) ||
84-
(pKbStruct->vkCode == VK_MENU && bShiftPressed) ||
85-
(pKbStruct->vkCode == VK_SHIFT && bCtrlPressed) ||
86-
(pKbStruct->vkCode == VK_CONTROL && bShiftPressed))
89+
UINT vkCode = pKbStruct->vkCode;
90+
if ((bAltPressed && CheckVirtualKey(vkCode, VK_LSHIFT, VK_RSHIFT)) ||
91+
(bShiftPressed && CheckVirtualKey(vkCode, VK_LMENU, VK_RMENU)) ||
92+
(bCtrlPressed && CheckVirtualKey(vkCode, VK_LSHIFT, VK_RSHIFT)) ||
93+
(bShiftPressed && CheckVirtualKey(vkCode, VK_LCONTROL, VK_RCONTROL)))
8794
{
8895
PostMessageToMainWnd(WM_LANG_CHANGED, 0, 0);
8996
}

0 commit comments

Comments
 (0)