Chromium Code Reviews| Index: ui/events/keycodes/keyboard_code_conversion_mac.mm |
| diff --git a/ui/events/keycodes/keyboard_code_conversion_mac.mm b/ui/events/keycodes/keyboard_code_conversion_mac.mm |
| index 8b9ce812c17328488c54ef0559473501058030b0..f3b02d5daec473dc705faae64ac292445457231f 100644 |
| --- a/ui/events/keycodes/keyboard_code_conversion_mac.mm |
| +++ b/ui/events/keycodes/keyboard_code_conversion_mac.mm |
| @@ -200,6 +200,42 @@ const KeyCodeMap kKeyCodesMap[] = { |
| { VKEY_OEM_CLEAR /* 0xFE */, kVK_ANSI_KeypadClear, kClearCharCode } |
| }; |
| +bool IsKeypadEvent(NSEvent* event) { |
| + // Check that this is the type of event that has a keyCode. |
| + switch ([event type]) { |
| + case NSKeyDown: |
| + case NSKeyUp: |
| + case NSFlagsChanged: |
| + break; |
| + default: |
| + return false; |
| + } |
| + |
| + switch ([event keyCode]) { |
| + case kVK_ANSI_KeypadClear: |
| + case kVK_ANSI_KeypadEquals: |
| + case kVK_ANSI_KeypadMultiply: |
| + case kVK_ANSI_KeypadDivide: |
| + case kVK_ANSI_KeypadMinus: |
| + case kVK_ANSI_KeypadPlus: |
| + case kVK_ANSI_KeypadEnter: |
| + case kVK_ANSI_KeypadDecimal: |
| + case kVK_ANSI_Keypad0: |
| + case kVK_ANSI_Keypad1: |
| + case kVK_ANSI_Keypad2: |
| + case kVK_ANSI_Keypad3: |
| + case kVK_ANSI_Keypad4: |
| + case kVK_ANSI_Keypad5: |
| + case kVK_ANSI_Keypad6: |
| + case kVK_ANSI_Keypad7: |
| + case kVK_ANSI_Keypad8: |
| + case kVK_ANSI_Keypad9: |
| + return true; |
| + } |
| + |
| + return false; |
| +} |
| + |
| // A convenient array for getting symbol characters on the number keys. |
| const char kShiftCharsForNumberKeys[] = ")!@#$%^&*("; |
| @@ -533,7 +569,8 @@ int MacKeyCodeForWindowsKeyCode(KeyboardCode keycode, |
| KeyboardCode KeyboardCodeFromNSEvent(NSEvent* event) { |
| KeyboardCode code = VKEY_UNKNOWN; |
| - if ([event type] == NSKeyDown || [event type] == NSKeyUp) { |
| + if (!IsKeypadEvent(event) && |
|
Alexei Svitkine (slow)
2015/09/14 17:14:43
Is this introducing a logic change? if so, it shou
dtapuska
2015/09/14 18:31:21
Done.
|
| + ([event type] == NSKeyDown || [event type] == NSKeyUp)) { |
| NSString* characters = [event characters]; |
| if ([characters length] > 0) |
| code = KeyboardCodeFromCharCode([characters characterAtIndex:0]); |