diff --git a/Windows/KeyboardDevice.cpp b/Windows/KeyboardDevice.cpp index eaaf831f65..571efabe81 100644 --- a/Windows/KeyboardDevice.cpp +++ b/Windows/KeyboardDevice.cpp @@ -116,7 +116,9 @@ std::map windowsTransTable = InitConstMap (VK_F10, NKCODE_F10) (VK_F11, NKCODE_F11) (VK_F12, NKCODE_F12) - (VK_OEM_102, NKCODE_EXT_PIPE); + (VK_OEM_102, NKCODE_EXT_PIPE) + (VK_LBUTTON, NKCODE_EXT_MOUSEBUTTON_1) + (VK_RBUTTON, NKCODE_EXT_MOUSEBUTTON_2); int KeyboardDevice::UpdateState(InputState &input_state) { // Nothing to do, all done in WM_INPUT diff --git a/Windows/WndMainWindow.cpp b/Windows/WndMainWindow.cpp index 8a31bf0c83..5805616369 100644 --- a/Windows/WndMainWindow.cpp +++ b/Windows/WndMainWindow.cpp @@ -1122,6 +1122,22 @@ namespace MainWindow mouseDeltaX += raw->data.mouse.lLastX; mouseDeltaY += raw->data.mouse.lLastY; + KeyInput key; + key.deviceId = DEVICE_ID_MOUSE; + + bool mouseRightBtnPressed = raw->data.mouse.usButtonFlags & RI_MOUSE_RIGHT_BUTTON_DOWN != 0; + + if(mouseRightBtnPressed) { + key.flags = KEY_DOWN; + key.keyCode = windowsTransTable[VK_RBUTTON]; + NativeKey(key); + } + else { + key.flags = KEY_UP; + key.keyCode = windowsTransTable[VK_RBUTTON]; + NativeKey(key); + } + // TODO : Smooth and translate to an axis every frame. // NativeAxis() }