summaryrefslogtreecommitdiffstats
path: root/client/windows/red_window.cpp
diff options
context:
space:
mode:
authorArnon Gilboa <agilboa@redhat.com>2009-11-17 16:48:23 +0200
committerYaniv Kamay <ykamay@redhat.com>2009-11-18 13:42:48 +0200
commit3cabc1c1e7ca7e5ef2b2cac4f92ecaa306901f27 (patch)
tree2bea0d6eef1d66dbde38ef5bb8f0972c933de23e /client/windows/red_window.cpp
parent56eb1acb9e7792faedf8c23d4e1435f1ec2b36b8 (diff)
downloadspice-3cabc1c1e7ca7e5ef2b2cac4f92ecaa306901f27.tar.gz
spice-3cabc1c1e7ca7e5ef2b2cac4f92ecaa306901f27.tar.xz
spice-3cabc1c1e7ca7e5ef2b2cac4f92ecaa306901f27.zip
spice: pass modifiers stroke events down the hook chain
Diffstat (limited to 'client/windows/red_window.cpp')
-rw-r--r--client/windows/red_window.cpp18
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;
}
}