Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(461)

Unified Diff: ui/events/keycodes/keyboard_code_conversion_mac.mm

Issue 1331013004: [KeyEvent Mac] Move WebInputEventFactory into chromium. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) &&
+ ([event type] == NSKeyDown || [event type] == NSKeyUp)) {
NSString* characters = [event characters];
if ([characters length] > 0)
code = KeyboardCodeFromCharCode([characters characterAtIndex:0]);

Powered by Google App Engine
This is Rietveld 408576698