diff options
author | Francisco De La Cruz <dlcs.frank@gmail.com> | 2013-04-25 09:32:32 +0400 |
---|---|---|
committer | Francisco De La Cruz <dlcs.frank@gmail.com> | 2013-04-25 09:32:32 +0400 |
commit | 70de23dabb17634940f25d76c03e3ac3b62d58d4 (patch) | |
tree | 2c387e83f58fa97b443e8688c70f4519f2fb52ec /intern/ghost | |
parent | d22e9657a557058eb115f6690b1f063d0dbd6ea2 (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.cpp | 12 |
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; |