| 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 "content/browser/renderer_host/render_widget_host_view_event_handler.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_event_handler.h" |
| 6 | 6 |
| 7 #include "base/metrics/user_metrics_action.h" | 7 #include "base/metrics/user_metrics_action.h" |
| 8 #include "content/browser/renderer_host/input/touch_selection_controller_client_
aura.h" | 8 #include "content/browser/renderer_host/input/touch_selection_controller_client_
aura.h" |
| 9 #include "content/browser/renderer_host/overscroll_controller.h" | 9 #include "content/browser/renderer_host/overscroll_controller.h" |
| 10 #include "content/browser/renderer_host/render_view_host_delegate.h" | 10 #include "content/browser/renderer_host/render_view_host_delegate.h" |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 | 241 |
| 242 void RenderWidgetHostViewEventHandler::OnKeyEvent(ui::KeyEvent* event) { | 242 void RenderWidgetHostViewEventHandler::OnKeyEvent(ui::KeyEvent* event) { |
| 243 TRACE_EVENT0("input", "RenderWidgetHostViewBase::OnKeyEvent"); | 243 TRACE_EVENT0("input", "RenderWidgetHostViewBase::OnKeyEvent"); |
| 244 | 244 |
| 245 if (NeedsInputGrab(popup_child_host_view_)) { | 245 if (NeedsInputGrab(popup_child_host_view_)) { |
| 246 popup_child_event_handler_->OnKeyEvent(event); | 246 popup_child_event_handler_->OnKeyEvent(event); |
| 247 if (event->handled()) | 247 if (event->handled()) |
| 248 return; | 248 return; |
| 249 } | 249 } |
| 250 | 250 |
| 251 bool mark_event_as_handled = true; |
| 251 // We need to handle the Escape key for Pepper Flash. | 252 // We need to handle the Escape key for Pepper Flash. |
| 252 if (host_view_->is_fullscreen() && event->key_code() == ui::VKEY_ESCAPE) { | 253 if (host_view_->is_fullscreen() && event->key_code() == ui::VKEY_ESCAPE) { |
| 253 // Focus the window we were created from. | 254 // Focus the window we were created from. |
| 254 if (host_tracker_.get() && !host_tracker_->windows().empty()) { | 255 if (host_tracker_.get() && !host_tracker_->windows().empty()) { |
| 255 aura::Window* host = *(host_tracker_->windows().begin()); | 256 aura::Window* host = *(host_tracker_->windows().begin()); |
| 256 aura::client::FocusClient* client = aura::client::GetFocusClient(host); | 257 aura::client::FocusClient* client = aura::client::GetFocusClient(host); |
| 257 if (client) { | 258 if (client) { |
| 258 // Calling host->Focus() may delete |this|. We create a local observer | 259 // Calling host->Focus() may delete |this|. We create a local observer |
| 259 // for that. In that case we exit without further access to any members. | 260 // for that. In that case we exit without further access to any members. |
| 260 auto local_tracker = std::move(host_tracker_); | 261 auto local_tracker = std::move(host_tracker_); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 276 // Accept return key character events between press and release events. | 277 // Accept return key character events between press and release events. |
| 277 accept_return_character_ = event->type() == ui::ET_KEY_PRESSED; | 278 accept_return_character_ = event->type() == ui::ET_KEY_PRESSED; |
| 278 } | 279 } |
| 279 | 280 |
| 280 // Call SetKeyboardFocus() for not only ET_KEY_PRESSED but also | 281 // Call SetKeyboardFocus() for not only ET_KEY_PRESSED but also |
| 281 // ET_KEY_RELEASED. If a user closed the hotdog menu with ESC key press, | 282 // ET_KEY_RELEASED. If a user closed the hotdog menu with ESC key press, |
| 282 // we need to notify focus to Blink on ET_KEY_RELEASED for ESC key. | 283 // we need to notify focus to Blink on ET_KEY_RELEASED for ESC key. |
| 283 SetKeyboardFocus(); | 284 SetKeyboardFocus(); |
| 284 // We don't have to communicate with an input method here. | 285 // We don't have to communicate with an input method here. |
| 285 NativeWebKeyboardEvent webkit_event(*event); | 286 NativeWebKeyboardEvent webkit_event(*event); |
| 286 delegate_->ForwardKeyboardEvent(webkit_event); | 287 delegate_->ForwardKeyboardEvent(webkit_event, &mark_event_as_handled); |
| 287 } | 288 } |
| 288 event->SetHandled(); | 289 if (mark_event_as_handled) |
| 290 event->SetHandled(); |
| 289 } | 291 } |
| 290 | 292 |
| 291 void RenderWidgetHostViewEventHandler::OnMouseEvent(ui::MouseEvent* event) { | 293 void RenderWidgetHostViewEventHandler::OnMouseEvent(ui::MouseEvent* event) { |
| 292 TRACE_EVENT0("input", "RenderWidgetHostViewBase::OnMouseEvent"); | 294 TRACE_EVENT0("input", "RenderWidgetHostViewBase::OnMouseEvent"); |
| 293 ForwardMouseEventToParent(event); | 295 ForwardMouseEventToParent(event); |
| 294 // TODO(mgiuca): Return if event->handled() returns true. This currently | 296 // TODO(mgiuca): Return if event->handled() returns true. This currently |
| 295 // breaks drop-down lists which means something is incorrectly setting | 297 // breaks drop-down lists which means something is incorrectly setting |
| 296 // event->handled to true (http://crbug.com/577983). | 298 // event->handled to true (http://crbug.com/577983). |
| 297 | 299 |
| 298 if (mouse_locked_) { | 300 if (mouse_locked_) { |
| (...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 867 host_->ForwardWheelEventWithLatencyInfo(event, latency); | 869 host_->ForwardWheelEventWithLatencyInfo(event, latency); |
| 868 } | 870 } |
| 869 | 871 |
| 870 void RenderWidgetHostViewEventHandler::ProcessTouchEvent( | 872 void RenderWidgetHostViewEventHandler::ProcessTouchEvent( |
| 871 const blink::WebTouchEvent& event, | 873 const blink::WebTouchEvent& event, |
| 872 const ui::LatencyInfo& latency) { | 874 const ui::LatencyInfo& latency) { |
| 873 host_->ForwardTouchEventWithLatencyInfo(event, latency); | 875 host_->ForwardTouchEventWithLatencyInfo(event, latency); |
| 874 } | 876 } |
| 875 | 877 |
| 876 } // namespace content | 878 } // namespace content |
| OLD | NEW |