OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "KeyboardEventManager.h" | 5 #include "KeyboardEventManager.h" |
6 | 6 |
7 #include "core/dom/DocumentUserGestureToken.h" | 7 #include "core/dom/DocumentUserGestureToken.h" |
8 #include "core/dom/Element.h" | 8 #include "core/dom/Element.h" |
9 #include "core/editing/Editor.h" | 9 #include "core/editing/Editor.h" |
10 #include "core/events/KeyboardEvent.h" | 10 #include "core/events/KeyboardEvent.h" |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 initialKeyEvent.type == WebInputEvent::Char) { | 197 initialKeyEvent.type == WebInputEvent::Char) { |
198 KeyboardEvent* domEvent = KeyboardEvent::create( | 198 KeyboardEvent* domEvent = KeyboardEvent::create( |
199 initialKeyEvent, m_frame->document()->domWindow()); | 199 initialKeyEvent, m_frame->document()->domWindow()); |
200 | 200 |
201 return EventHandlingUtil::toWebInputEventResult( | 201 return EventHandlingUtil::toWebInputEventResult( |
202 node->dispatchEvent(domEvent)); | 202 node->dispatchEvent(domEvent)); |
203 } | 203 } |
204 | 204 |
205 WebKeyboardEvent keyDownEvent = initialKeyEvent; | 205 WebKeyboardEvent keyDownEvent = initialKeyEvent; |
206 if (keyDownEvent.type != WebInputEvent::RawKeyDown) | 206 if (keyDownEvent.type != WebInputEvent::RawKeyDown) |
207 keyDownEvent.type = WebInputEvent::RawKeyDown; | 207 keyDownEvent.setType(WebInputEvent::RawKeyDown); |
208 KeyboardEvent* keydown = | 208 KeyboardEvent* keydown = |
209 KeyboardEvent::create(keyDownEvent, m_frame->document()->domWindow()); | 209 KeyboardEvent::create(keyDownEvent, m_frame->document()->domWindow()); |
210 if (matchedAnAccessKey) | 210 if (matchedAnAccessKey) |
211 keydown->setDefaultPrevented(true); | 211 keydown->setDefaultPrevented(true); |
212 keydown->setTarget(node); | 212 keydown->setTarget(node); |
213 | 213 |
214 DispatchEventResult dispatchResult = node->dispatchEvent(keydown); | 214 DispatchEventResult dispatchResult = node->dispatchEvent(keydown); |
215 if (dispatchResult != DispatchEventResult::NotCanceled) | 215 if (dispatchResult != DispatchEventResult::NotCanceled) |
216 return EventHandlingUtil::toWebInputEventResult(dispatchResult); | 216 return EventHandlingUtil::toWebInputEventResult(dispatchResult); |
217 // If frame changed as a result of keydown dispatch, then return early to | 217 // If frame changed as a result of keydown dispatch, then return early to |
(...skipping 19 matching lines...) Expand all Loading... |
237 // function keys. However, some actual private use characters happen to be | 237 // function keys. However, some actual private use characters happen to be |
238 // in this range, e.g. the Apple logo (Option+Shift+K). 0xF7FF is an | 238 // in this range, e.g. the Apple logo (Option+Shift+K). 0xF7FF is an |
239 // arbitrary cut-off. | 239 // arbitrary cut-off. |
240 if (initialKeyEvent.text[0U] >= 0xF700 && | 240 if (initialKeyEvent.text[0U] >= 0xF700 && |
241 initialKeyEvent.text[0U] <= 0xF7FF) { | 241 initialKeyEvent.text[0U] <= 0xF7FF) { |
242 return WebInputEventResult::NotHandled; | 242 return WebInputEventResult::NotHandled; |
243 } | 243 } |
244 #endif | 244 #endif |
245 | 245 |
246 WebKeyboardEvent keyPressEvent = initialKeyEvent; | 246 WebKeyboardEvent keyPressEvent = initialKeyEvent; |
247 keyPressEvent.type = WebInputEvent::Char; | 247 keyPressEvent.setType(WebInputEvent::Char); |
248 if (keyPressEvent.text[0] == 0) | 248 if (keyPressEvent.text[0] == 0) |
249 return WebInputEventResult::NotHandled; | 249 return WebInputEventResult::NotHandled; |
250 KeyboardEvent* keypress = | 250 KeyboardEvent* keypress = |
251 KeyboardEvent::create(keyPressEvent, m_frame->document()->domWindow()); | 251 KeyboardEvent::create(keyPressEvent, m_frame->document()->domWindow()); |
252 keypress->setTarget(node); | 252 keypress->setTarget(node); |
253 return EventHandlingUtil::toWebInputEventResult( | 253 return EventHandlingUtil::toWebInputEventResult( |
254 node->dispatchEvent(keypress)); | 254 node->dispatchEvent(keypress)); |
255 } | 255 } |
256 | 256 |
257 void KeyboardEventManager::capsLockStateMayHaveChanged() { | 257 void KeyboardEventManager::capsLockStateMayHaveChanged() { |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 if (currentModifiers & ::cmdKey) | 452 if (currentModifiers & ::cmdKey) |
453 modifiers |= WebInputEvent::MetaKey; | 453 modifiers |= WebInputEvent::MetaKey; |
454 #else | 454 #else |
455 // TODO(crbug.com/538289): Implement on other platforms. | 455 // TODO(crbug.com/538289): Implement on other platforms. |
456 return static_cast<WebInputEvent::Modifiers>(0); | 456 return static_cast<WebInputEvent::Modifiers>(0); |
457 #endif | 457 #endif |
458 return static_cast<WebInputEvent::Modifiers>(modifiers); | 458 return static_cast<WebInputEvent::Modifiers>(modifiers); |
459 } | 459 } |
460 | 460 |
461 } // namespace blink | 461 } // namespace blink |
OLD | NEW |