| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_input_event_router.h" | 5 #include "content/browser/renderer_host/render_widget_host_input_event_router.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/metrics/histogram_macros.h" | 9 #include "base/metrics/histogram_macros.h" |
| 10 #include "cc/quads/surface_draw_quad.h" | 10 #include "cc/quads/surface_draw_quad.h" |
| (...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 if (root_view->IsMouseLocked()) { | 277 if (root_view->IsMouseLocked()) { |
| 278 target = RenderWidgetHostImpl::From(root_view->GetRenderWidgetHost()) | 278 target = RenderWidgetHostImpl::From(root_view->GetRenderWidgetHost()) |
| 279 ->delegate() | 279 ->delegate() |
| 280 ->GetMouseLockWidget() | 280 ->GetMouseLockWidget() |
| 281 ->GetView(); | 281 ->GetView(); |
| 282 if (!root_view->TransformPointToCoordSpaceForView( | 282 if (!root_view->TransformPointToCoordSpaceForView( |
| 283 gfx::Point(event->PositionInWidget().x, | 283 gfx::Point(event->PositionInWidget().x, |
| 284 event->PositionInWidget().y), | 284 event->PositionInWidget().y), |
| 285 target, &transformed_point)) | 285 target, &transformed_point)) |
| 286 return; | 286 return; |
| 287 } else { | 287 } else if (root_view->wheel_scroll_latching_enabled()) { |
| 288 if (event->phase == blink::WebMouseWheelEvent::kPhaseBegan) { |
| 289 wheel_target_.target = FindEventTarget( |
| 290 root_view, |
| 291 gfx::Point(event->PositionInWidget().x, event->PositionInWidget().y), |
| 292 &transformed_point); |
| 293 wheel_target_.delta = |
| 294 transformed_point - |
| 295 gfx::Point(event->PositionInWidget().x, event->PositionInWidget().y); |
| 296 target = wheel_target_.target; |
| 297 } else { |
| 298 if (wheel_target_.target) { |
| 299 target = wheel_target_.target; |
| 300 transformed_point = gfx::Point(event->PositionInWidget().x, |
| 301 event->PositionInWidget().y) + |
| 302 wheel_target_.delta; |
| 303 } |
| 304 } |
| 305 |
| 306 } else { // !root_view->IsMouseLocked() && |
| 307 // !root_view->wheel_scroll_latching_enabled() |
| 288 target = FindEventTarget( | 308 target = FindEventTarget( |
| 289 root_view, | 309 root_view, |
| 290 gfx::Point(event->PositionInWidget().x, event->PositionInWidget().y), | 310 gfx::Point(event->PositionInWidget().x, event->PositionInWidget().y), |
| 291 &transformed_point); | 311 &transformed_point); |
| 292 } | 312 } |
| 293 | 313 |
| 294 if (!target) | 314 if (!target) |
| 295 return; | 315 return; |
| 296 | 316 |
| 297 event->SetPositionInWidget(transformed_point.x(), transformed_point.y()); | 317 event->SetPositionInWidget(transformed_point.x(), transformed_point.y()); |
| 298 target->ProcessMouseWheelEvent(*event, latency); | 318 target->ProcessMouseWheelEvent(*event, latency); |
| 319 |
| 320 DCHECK(root_view->wheel_scroll_latching_enabled() || !wheel_target_.target); |
| 321 if (event->phase == blink::WebMouseWheelEvent::kPhaseEnded || |
| 322 event->momentum_phase == blink::WebMouseWheelEvent::kPhaseEnded) { |
| 323 wheel_target_.target = nullptr; |
| 324 } |
| 299 } | 325 } |
| 300 | 326 |
| 301 void RenderWidgetHostInputEventRouter::RouteGestureEvent( | 327 void RenderWidgetHostInputEventRouter::RouteGestureEvent( |
| 302 RenderWidgetHostViewBase* root_view, | 328 RenderWidgetHostViewBase* root_view, |
| 303 blink::WebGestureEvent* event, | 329 blink::WebGestureEvent* event, |
| 304 const ui::LatencyInfo& latency) { | 330 const ui::LatencyInfo& latency) { |
| 305 if (event->IsTargetViewport()) { | 331 if (event->IsTargetViewport()) { |
| 306 root_view->ProcessGestureEvent(*event, latency); | 332 root_view->ProcessGestureEvent(*event, latency); |
| 307 return; | 333 return; |
| 308 } | 334 } |
| (...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 847 std::vector<RenderWidgetHostView*> | 873 std::vector<RenderWidgetHostView*> |
| 848 RenderWidgetHostInputEventRouter::GetRenderWidgetHostViewsForTests() const { | 874 RenderWidgetHostInputEventRouter::GetRenderWidgetHostViewsForTests() const { |
| 849 std::vector<RenderWidgetHostView*> hosts; | 875 std::vector<RenderWidgetHostView*> hosts; |
| 850 for (auto entry : owner_map_) | 876 for (auto entry : owner_map_) |
| 851 hosts.push_back(entry.second); | 877 hosts.push_back(entry.second); |
| 852 | 878 |
| 853 return hosts; | 879 return hosts; |
| 854 } | 880 } |
| 855 | 881 |
| 856 } // namespace content | 882 } // namespace content |
| OLD | NEW |