Bläddra i källkod

Fixes shift on windows, issue #85

See http://stackoverflow.com/questions/15966642/how-do-you-tell-lshift-apart-from-rshift-in-wm-keydown-events
cib 12 år sedan
förälder
incheckning
c5d28364f8
1 ändrade filer med 9 tillägg och 1 borttagningar
  1. 9 1
      Core/Contents/Source/PolyWinCore.cpp

+ 9 - 1
Core/Contents/Source/PolyWinCore.cpp

@@ -476,13 +476,21 @@ PolyKEY Win32Core::mapKey(LPARAM lParam, WPARAM wParam) {
 						wParam = VK_RCONTROL;
 						wParam = VK_RCONTROL;
 					else
 					else
 						wParam = VK_LCONTROL;
 						wParam = VK_LCONTROL;
-				break;
+					break;
 				case 33:
 				case 33:
 					if ( lParam&EXTENDED_KEYMASK )
 					if ( lParam&EXTENDED_KEYMASK )
 						wParam = VK_RMENU;
 						wParam = VK_RMENU;
 					else
 					else
 						wParam = VK_LMENU;
 						wParam = VK_LMENU;
 					break;
 					break;
+				case VK_SHIFT:
+					// We can't tell if it's LSHIFT or RSHIFT,
+					// so use GetKeyState to tell which it is.
+					if( GetKeyState(VK_LSHIFT) ) {
+						wParam = VK_LSHIFT;
+					} else {
+						wParam = VK_RSHIFT;
+					}
 			}
 			}
 
 
 	return keyMap[(unsigned int)wParam];
 	return keyMap[(unsigned int)wParam];