X-Git-Url: http://git.tdb.fi/?p=libs%2Fgui.git;a=blobdiff_plain;f=source%2Finput%2Fwindows%2Fkeyboard.cpp;h=690ba3a05e7b0e657f59d278dd3c3feee3ddd844;hp=e6882fe917dd3183089460107fe8c24e162e0bf0;hb=ce170ea187abe2b8017cde611d0e2e86a523ee79;hpb=a1341ef0d1e5a153a97fee929f11c3655ff5a8ea diff --git a/source/input/windows/keyboard.cpp b/source/input/windows/keyboard.cpp index e6882fe..690ba3a 100644 --- a/source/input/windows/keyboard.cpp +++ b/source/input/windows/keyboard.cpp @@ -4,7 +4,9 @@ #include "keys.h" #include "keys_private.h" +#ifndef MAPVK_VK_TO_VSC #define MAPVK_VK_TO_VSC 0 +#endif namespace Msp { namespace Input { @@ -31,6 +33,8 @@ void Keyboard::input_event(const Graphics::Window::Event &event) { case WM_KEYDOWN: case WM_KEYUP: + case WM_SYSKEYDOWN: + case WM_SYSKEYUP: { unsigned key = event.wparam | ((event.lparam>>16)&0x100); if(key==VK_SHIFT) @@ -40,7 +44,9 @@ void Keyboard::input_event(const Graphics::Window::Event &event) else key = VK_LSHIFT; } - set_button_state(key_from_sys(key), event.msg==WM_KEYDOWN, true); + set_button_state(key_from_sys(key), false, true); + if(event.msg==WM_KEYDOWN || event.msg==WM_SYSKEYDOWN) + set_button_state(key_from_sys(key), true, true); } break; case WM_CHAR: