From fcb6eaa8ccdc930a6240d87972c8ae7485ec7a18 Mon Sep 17 00:00:00 2001 From: Dmitry Chapyshev Date: Tue, 9 Aug 2016 21:41:05 +0000 Subject: [PATCH] [KBSWITCH] - Hackfix detecting keyboard layout switching * Now when hotkeys switching layouts icon changes svn path=/trunk/; revision=72175 --- reactos/base/applications/kbswitch/kbswitch.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/reactos/base/applications/kbswitch/kbswitch.c b/reactos/base/applications/kbswitch/kbswitch.c index b5a44bbbecf..13613403142 100644 --- a/reactos/base/applications/kbswitch/kbswitch.c +++ b/reactos/base/applications/kbswitch/kbswitch.c @@ -12,6 +12,7 @@ PKBSWITCHSETHOOKS KbSwitchSetHooks = NULL; PKBSWITCHDELETEHOOKS KbSwitchDeleteHooks = NULL; +UINT ShellHookMessage = 0; static BOOL @@ -524,6 +525,12 @@ WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) break; } + if (Message == ShellHookMessage && wParam == HSHELL_LANGUAGE) + { + PostMessage(hwnd, WM_LANG_CHANGED, wParam, lParam); + return 0; + } + return DefWindowProc(hwnd, Message, wParam, lParam); } @@ -533,6 +540,7 @@ _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPTSTR lpCmdLine, INT nCmdSh WNDCLASS WndClass = {0}; MSG msg; HANDLE hMutex; + HWND hwnd; switch (GetUserDefaultUILanguage()) { @@ -573,7 +581,9 @@ _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPTSTR lpCmdLine, INT nCmdSh return 1; } - CreateWindow(szKbSwitcherName, NULL, 0, 0, 0, 1, 1, HWND_DESKTOP, NULL, hInstance, NULL); + hwnd = CreateWindow(szKbSwitcherName, NULL, 0, 0, 0, 1, 1, HWND_DESKTOP, NULL, hInstance, NULL); + ShellHookMessage = RegisterWindowMessage(L"SHELLHOOK"); + RegisterShellHookWindow(hwnd); while(GetMessage(&msg,NULL,0,0)) {