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 <memory> | 7 #include <memory> |
8 | 8 |
9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
10 #include "core/dom/Element.h" | 10 #include "core/dom/Element.h" |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
192 | 192 |
193 // To be meaningful enough to indicate user intention, a keyboard event needs | 193 // To be meaningful enough to indicate user intention, a keyboard event needs |
194 // - not to be a modifier event | 194 // - not to be a modifier event |
195 // - not to be a browser shortcut | 195 // - not to be a browser shortcut |
196 // https://crbug.com/709765 | 196 // https://crbug.com/709765 |
197 bool is_modifier = | 197 bool is_modifier = |
198 Platform::Current()->IsDomKeyForModifier(initial_key_event.dom_key); | 198 Platform::Current()->IsDomKeyForModifier(initial_key_event.dom_key); |
199 bool is_browser_shortcut = initial_key_event.is_browser_shortcut; | 199 bool is_browser_shortcut = initial_key_event.is_browser_shortcut; |
200 | 200 |
201 std::unique_ptr<UserGestureIndicator> gesture_indicator; | 201 std::unique_ptr<UserGestureIndicator> gesture_indicator; |
202 if (!is_modifier && !is_browser_shortcut) { | 202 if (!is_modifier && |
203 (!is_browser_shortcut || initial_key_event.text[0] == '\b')) { | |
vasilii
2017/07/21 12:48:21
Can you clarify this?
kolos1
2017/07/24 15:33:31
Please ignore changes in this file. It is a quick
| |
203 gesture_indicator.reset(new UserGestureIndicator( | 204 gesture_indicator.reset(new UserGestureIndicator( |
204 UserGestureToken::Create(frame_->GetDocument()))); | 205 UserGestureToken::Create(frame_->GetDocument()))); |
205 } | 206 } |
206 | 207 |
207 // In IE, access keys are special, they are handled after default keydown | 208 // In IE, access keys are special, they are handled after default keydown |
208 // processing, but cannot be canceled - this is hard to match. On Mac OS X, | 209 // processing, but cannot be canceled - this is hard to match. On Mac OS X, |
209 // we process them before dispatching keydown, as the default keydown handler | 210 // we process them before dispatching keydown, as the default keydown handler |
210 // implements Emacs key bindings, which may conflict with access keys. Then we | 211 // implements Emacs key bindings, which may conflict with access keys. Then we |
211 // dispatch keydown, but suppress its default handling. | 212 // dispatch keydown, but suppress its default handling. |
212 // On Windows, WebKit explicitly calls handleAccessKey() instead of | 213 // On Windows, WebKit explicitly calls handleAccessKey() instead of |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
465 if (current_modifiers & ::cmdKey) | 466 if (current_modifiers & ::cmdKey) |
466 modifiers |= WebInputEvent::kMetaKey; | 467 modifiers |= WebInputEvent::kMetaKey; |
467 #else | 468 #else |
468 // TODO(crbug.com/538289): Implement on other platforms. | 469 // TODO(crbug.com/538289): Implement on other platforms. |
469 return static_cast<WebInputEvent::Modifiers>(0); | 470 return static_cast<WebInputEvent::Modifiers>(0); |
470 #endif | 471 #endif |
471 return static_cast<WebInputEvent::Modifiers>(modifiers); | 472 return static_cast<WebInputEvent::Modifiers>(modifiers); |
472 } | 473 } |
473 | 474 |
474 } // namespace blink | 475 } // namespace blink |
OLD | NEW |