Browse Source

Treating unknown side as left side for alt, shift and control on MS-Windows.

David Piuva 2 years ago
parent
commit
b92faa09f2
1 changed files with 6 additions and 3 deletions
  1. 6 3
      Source/windowManagers/Win32Window.cpp

+ 6 - 3
Source/windowManagers/Win32Window.cpp

@@ -317,15 +317,18 @@ static dsr::DsrKey getDsrKey(WPARAM keyCode) {
 		result = dsr::DsrKey_Return;
 		result = dsr::DsrKey_Return;
 	} else if (keyCode == VK_BACK) {
 	} else if (keyCode == VK_BACK) {
 		result = dsr::DsrKey_BackSpace;
 		result = dsr::DsrKey_BackSpace;
-	} else if (keyCode == VK_LSHIFT) {
+	} else if (keyCode == VK_LSHIFT || keyCode == VK_SHIFT) {
+		// If the keyboard does not tell if the shift is left or right, treat it like a left shift.
 		result = dsr::DsrKey_LeftShift;
 		result = dsr::DsrKey_LeftShift;
 	} else if (keyCode == VK_RSHIFT) {
 	} else if (keyCode == VK_RSHIFT) {
 		result = dsr::DsrKey_RightShift;
 		result = dsr::DsrKey_RightShift;
-	} else if (keyCode == VK_LCONTROL) {
+	} else if (keyCode == VK_LCONTROL || keyCode == VK_CONTROL) {
+		// If the keyboard does not tell if control is left or right, treat it like left control.
 		result = dsr::DsrKey_LeftControl;
 		result = dsr::DsrKey_LeftControl;
 	} else if (keyCode == VK_RCONTROL) {
 	} else if (keyCode == VK_RCONTROL) {
 		result = dsr::DsrKey_RightControl;
 		result = dsr::DsrKey_RightControl;
-	} else if (keyCode == VK_LMENU) {
+	} else if (keyCode == VK_LMENU || keyCode == VK_MENU) {
+		// If the keyboard does not tell if alt is left or right, treat it like left alt.
 		result = dsr::DsrKey_LeftAlt;
 		result = dsr::DsrKey_LeftAlt;
 	} else if (keyCode == VK_RMENU) {
 	} else if (keyCode == VK_RMENU) {
 		result = dsr::DsrKey_RightAlt;
 		result = dsr::DsrKey_RightAlt;