diff options
author | Arnon Gilboa <agilboa@redhat.com> | 2009-11-17 16:48:23 +0200 |
---|---|---|
committer | Yaniv Kamay <ykamay@redhat.com> | 2009-11-18 13:42:48 +0200 |
commit | 3cabc1c1e7ca7e5ef2b2cac4f92ecaa306901f27 (patch) | |
tree | 2bea0d6eef1d66dbde38ef5bb8f0972c933de23e /client/windows | |
parent | 56eb1acb9e7792faedf8c23d4e1435f1ec2b36b8 (diff) | |
download | spice-3cabc1c1e7ca7e5ef2b2cac4f92ecaa306901f27.tar.gz spice-3cabc1c1e7ca7e5ef2b2cac4f92ecaa306901f27.tar.xz spice-3cabc1c1e7ca7e5ef2b2cac4f92ecaa306901f27.zip |
spice: pass modifiers stroke events down the hook chain
Diffstat (limited to 'client/windows')
-rw-r--r-- | client/windows/red_window.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/client/windows/red_window.cpp b/client/windows/red_window.cpp index ab1aa159..9365c69d 100644 --- a/client/windows/red_window.cpp +++ b/client/windows/red_window.cpp @@ -666,10 +666,6 @@ static LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lP dwMsg += hooked->scanCode << 16; dwMsg += hooked->flags << 24; - // Forward these keys so the keyboard leds will light up. - BOOL bNextHook = ((hooked->vkCode == VK_CAPITAL) || - (hooked->vkCode == VK_SCROLL) || (hooked->vkCode == VK_NUMLOCK)); - // In some cases scan code of VK_RSHIFT is fake shift (probably a bug) so we // convert it to non extended code. Also, QEmu doesn't expect num-lock to be // an extended key. @@ -679,7 +675,19 @@ static LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lP SendMessage(focus_window, wParam, hooked->vkCode, dwMsg); - if (bNextHook == FALSE) { + // Forward all modifier key strokes to update keyboard leds & shift/ctrl/alt state + switch (hooked->vkCode) { + case VK_CAPITAL: + case VK_SCROLL: + case VK_NUMLOCK: + case VK_LSHIFT: + case VK_RSHIFT: + case VK_LCONTROL: + case VK_RCONTROL: + case VK_LMENU: + case VK_RMENU: + break; + default: return 1; } } |