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

Side by Side Diff: Source/core/events/KeyboardEvent.cpp

Issue 663523002: Adding support for DOM3 KeyboardEvents Code in KeyboardEvents (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Use native code instead of usb code mapping. Also updated to match firefox values. Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 /** 1 /**
2 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 2 * Copyright (C) 2001 Peter Kelly (pmk@post.com)
3 * Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de) 3 * Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de)
4 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) 4 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
5 * Copyright (C) 2003, 2005, 2006, 2007 Apple Inc. All rights reserved. 5 * Copyright (C) 2003, 2005, 2006, 2007 Apple Inc. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
11 * 11 *
12 * This library is distributed in the hope that it will be useful, 12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Library General Public License for more details. 15 * Library General Public License for more details.
16 * 16 *
17 * You should have received a copy of the GNU Library General Public License 17 * You should have received a copy of the GNU Library General Public License
18 * along with this library; see the file COPYING.LIB. If not, write to 18 * along with this library; see the file COPYING.LIB. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301, USA. 20 * Boston, MA 02110-1301, USA.
21 */ 21 */
22 22
23 #include "config.h" 23 #include "config.h"
24 #include "core/events/KeyboardEvent.h" 24 #include "core/events/KeyboardEvent.h"
25 25
26 #include "KeyboardCode.h"
26 #include "platform/PlatformKeyboardEvent.h" 27 #include "platform/PlatformKeyboardEvent.h"
27 #include "platform/WindowsKeyboardCodes.h" 28 #include "platform/WindowsKeyboardCodes.h"
28 29
29 namespace blink { 30 namespace blink {
30 31
31 static inline const AtomicString& eventTypeForKeyboardEventType(PlatformEvent::T ype type) 32 static inline const AtomicString& eventTypeForKeyboardEventType(PlatformEvent::T ype type)
32 { 33 {
33 switch (type) { 34 switch (type) {
34 case PlatformEvent::KeyUp: 35 case PlatformEvent::KeyUp:
35 return EventTypeNames::keyup; 36 return EventTypeNames::keyup;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 case VK_RCONTROL: 79 case VK_RCONTROL:
79 case VK_RSHIFT: 80 case VK_RSHIFT:
80 case VK_RMENU: 81 case VK_RMENU:
81 case VK_RWIN: 82 case VK_RWIN:
82 return KeyboardEvent::DOM_KEY_LOCATION_RIGHT; 83 return KeyboardEvent::DOM_KEY_LOCATION_RIGHT;
83 default: 84 default:
84 return KeyboardEvent::DOM_KEY_LOCATION_STANDARD; 85 return KeyboardEvent::DOM_KEY_LOCATION_STANDARD;
85 } 86 }
86 } 87 }
87 88
89 static inline String nativeCodeToKeyCode(PlatformEvent::Type type, int nativeCod e)
Wez 2014/10/25 00:23:02 This takes a nativeKeyCode and returns a DOM |code
90 {
91 String code = "";
92
93 if (type == PlatformEvent::Char)
94 return code;
Wez 2014/10/25 00:23:02 Why would you ever call this for a Char event?
Habib Virji 2014/10/27 16:48:36 It is due to KeyboardEvent constructor getting cal
95
96 for (unsigned long i = 0; i < (sizeof(keyCodeMap)/ sizeof(keyCodeMap[0])); + +i) {
97 if (nativeCode && nativeCode == keyCodeMap[i].nativeCode) {
98 code = String(keyCodeMap[i].code);
99 return code;
Wez 2014/10/25 00:23:02 Why not return the new String directly?
Habib Virji 2014/10/27 16:48:36 Acknowledged.
100 }
101 }
102
103 return code;
Wez 2014/10/25 00:23:02 If you reach here then code is always "" - why do
Habib Virji 2014/10/27 16:48:36 Acknowledged.
104 }
105
88 KeyboardEventInit::KeyboardEventInit() 106 KeyboardEventInit::KeyboardEventInit()
89 : location(0) 107 : location(0)
90 , ctrlKey(false) 108 , ctrlKey(false)
91 , altKey(false) 109 , altKey(false)
92 , shiftKey(false) 110 , shiftKey(false)
93 , metaKey(false) 111 , metaKey(false)
94 , repeat(false) 112 , repeat(false)
95 { 113 {
96 } 114 }
97 115
98 KeyboardEvent::KeyboardEvent() 116 KeyboardEvent::KeyboardEvent()
99 : m_location(DOM_KEY_LOCATION_STANDARD) 117 : m_location(DOM_KEY_LOCATION_STANDARD)
100 , m_isAutoRepeat(false) 118 , m_isAutoRepeat(false)
101 { 119 {
102 } 120 }
103 121
104 KeyboardEvent::KeyboardEvent(const PlatformKeyboardEvent& key, AbstractView* vie w) 122 KeyboardEvent::KeyboardEvent(const PlatformKeyboardEvent& key, AbstractView* vie w)
105 : UIEventWithKeyState(eventTypeForKeyboardEventType(key.type()), 123 : UIEventWithKeyState(eventTypeForKeyboardEventType(key.type()),
106 true, true, view, 0, key.ctrlKey(), key.altKey(), key. shiftKey(), key.metaKey()) 124 true, true, view, 0, key.ctrlKey(), key.altKey(), key. shiftKey(), key.metaKey())
107 , m_keyEvent(adoptPtr(new PlatformKeyboardEvent(key))) 125 , m_keyEvent(adoptPtr(new PlatformKeyboardEvent(key)))
108 , m_keyIdentifier(key.keyIdentifier()) 126 , m_keyIdentifier(key.keyIdentifier())
109 , m_location(keyLocationCode(key)) 127 , m_location(keyLocationCode(key))
110 , m_isAutoRepeat(key.isAutoRepeat()) 128 , m_isAutoRepeat(key.isAutoRepeat())
129 , m_code(nativeCodeToKeyCode(key.type(), key.nativeVirtualKeyCode()))
111 { 130 {
112 } 131 }
113 132
114 KeyboardEvent::KeyboardEvent(const AtomicString& eventType, const KeyboardEventI nit& initializer) 133 KeyboardEvent::KeyboardEvent(const AtomicString& eventType, const KeyboardEventI nit& initializer)
115 : UIEventWithKeyState(eventType, initializer.bubbles, initializer.cancelable , initializer.view, initializer.detail, initializer.ctrlKey, initializer.altKey, initializer.shiftKey, initializer.metaKey) 134 : UIEventWithKeyState(eventType, initializer.bubbles, initializer.cancelable , initializer.view, initializer.detail, initializer.ctrlKey, initializer.altKey, initializer.shiftKey, initializer.metaKey)
116 , m_keyIdentifier(initializer.keyIdentifier) 135 , m_keyIdentifier(initializer.keyIdentifier)
117 , m_location(initializer.location) 136 , m_location(initializer.location)
118 , m_isAutoRepeat(initializer.repeat) 137 , m_isAutoRepeat(initializer.repeat)
138 , m_code(initializer.code)
119 { 139 {
120 } 140 }
121 141
122 KeyboardEvent::KeyboardEvent(const AtomicString& eventType, bool canBubble, bool cancelable, AbstractView *view, 142 KeyboardEvent::KeyboardEvent(const AtomicString& eventType, bool canBubble, bool cancelable, AbstractView *view,
123 const String &keyIdentifier, unsigned location, 143 const String &keyIdentifier, unsigned location,
124 bool ctrlKey, bool altKey, bool shiftKey, bool meta Key) 144 bool ctrlKey, bool altKey, bool shiftKey, bool meta Key)
125 : UIEventWithKeyState(eventType, canBubble, cancelable, view, 0, ctrlKey, al tKey, shiftKey, metaKey) 145 : UIEventWithKeyState(eventType, canBubble, cancelable, view, 0, ctrlKey, al tKey, shiftKey, metaKey)
126 , m_keyIdentifier(keyIdentifier) 146 , m_keyIdentifier(keyIdentifier)
127 , m_location(location) 147 , m_location(location)
128 , m_isAutoRepeat(false) 148 , m_isAutoRepeat(false)
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 { 242 {
223 } 243 }
224 244
225 bool KeyboardEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) c onst 245 bool KeyboardEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) c onst
226 { 246 {
227 // Make sure not to return true if we already took default action while hand ling the event. 247 // Make sure not to return true if we already took default action while hand ling the event.
228 return EventDispatchMediator::dispatchEvent(dispatcher) && !event()->default Handled(); 248 return EventDispatchMediator::dispatchEvent(dispatcher) && !event()->default Handled();
229 } 249 }
230 250
231 } // namespace blink 251 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698