Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco De La Cruz <dlcs.frank@gmail.com>2013-04-25 09:32:32 +0400
committerFrancisco De La Cruz <dlcs.frank@gmail.com>2013-04-25 09:32:32 +0400
commit70de23dabb17634940f25d76c03e3ac3b62d58d4 (patch)
tree2c387e83f58fa97b443e8688c70f4519f2fb52ec /intern/ghost
parentd22e9657a557058eb115f6690b1f063d0dbd6ea2 (diff)
Fix #29932 Left Shift + Numpad 1,2,3 not Aligning to Active
Intermediate Shift+Key messages were resetting modifier flags.
Diffstat (limited to 'intern/ghost')
-rw-r--r--intern/ghost/intern/GHOST_SystemWin32.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp
index b3f2f218778..fb095b5f4be 100644
--- a/intern/ghost/intern/GHOST_SystemWin32.cpp
+++ b/intern/ghost/intern/GHOST_SystemWin32.cpp
@@ -607,7 +607,17 @@ GHOST_TKey GHOST_SystemWin32::convertKey(GHOST_IWindow *window, short vKey, shor
case VK_GR_LESS: key = GHOST_kKeyGrLess; break;
case VK_SHIFT:
- key = (scanCode == 0x36) ? GHOST_kKeyRightShift : GHOST_kKeyLeftShift;
+ /* Check single shift presses */
+ if (scanCode == 0x36) {
+ key = GHOST_kKeyRightShift;
+ } else if (scanCode == 0x2a) {
+ key = GHOST_kKeyLeftShift;
+ } else {
+ /* Must be a combination SHIFT (Left or Right) + a Key
+ * Ignore this as the next message will contain
+ * the desired "Key" */
+ key = GHOST_kKeyUnknown;
+ }
break;
case VK_CONTROL:
key = (extend) ? GHOST_kKeyRightControl : GHOST_kKeyLeftControl;