diff --git a/Sources/Plasma/PubUtilLib/plInputCore/plInputManager.cpp b/Sources/Plasma/PubUtilLib/plInputCore/plInputManager.cpp index 5cd7c8f7..2fb88b61 100644 --- a/Sources/Plasma/PubUtilLib/plInputCore/plInputManager.cpp +++ b/Sources/Plasma/PubUtilLib/plInputCore/plInputManager.cpp @@ -281,15 +281,14 @@ void plInputManager::HandleWin32ControlEvent(UINT message, WPARAM Wparam, LPARAM Wparam == KEY_TAB || Wparam == 0x0D) break; - UINT scan = Lparam >> 16; - scan = MapVirtualKeyEx(scan, MAPVK_VSC_TO_VK, nil); - if (scan == 0) scan = -1; + BYTE scan = Lparam >> 16; + UINT vkey = MapVirtualKey(scan, MAPVK_VSC_TO_VK); bExtended = Lparam >> 24 & 1; hsBool bRepeat = ((Lparam >> 29) & 0xf) != 0; bool down = !(Lparam >> 31); for (int i=0; iHandleKeyEvent( CHAR_MSG, (plKeyDef)scan, down, bRepeat, (wchar_t)Wparam ); + fInputDevices[i]->HandleKeyEvent( CHAR_MSG, (plKeyDef)vkey, down, bRepeat, (wchar_t)Wparam ); } break; case MOUSEWHEEL: