OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |