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 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
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 { |
288 target = FindEventTarget( | 288 if (root_view->wheel_scroll_latching_enabled()) { |
bokan
2017/06/15 15:47:17
Nit: make this an else if in the outer block
sahel
2017/06/16 14:56:20
Done.
| |
289 root_view, | 289 if (event->phase == blink::WebMouseWheelEvent::kPhaseBegan) { |
290 gfx::Point(event->PositionInWidget().x, event->PositionInWidget().y), | 290 wheel_target_.target = |
291 &transformed_point); | 291 FindEventTarget(root_view, |
292 gfx::Point(event->PositionInWidget().x, | |
293 event->PositionInWidget().y), | |
294 &transformed_point); | |
295 wheel_target_.delta = | |
296 transformed_point - gfx::Point(event->PositionInWidget().x, | |
297 event->PositionInWidget().y); | |
298 target = wheel_target_.target; | |
299 } else { | |
300 if (wheel_target_.target) { | |
301 target = wheel_target_.target; | |
302 transformed_point = gfx::Point(event->PositionInWidget().x, | |
303 event->PositionInWidget().y) + | |
304 wheel_target_.delta; | |
305 } | |
306 } | |
307 | |
308 } else { // !root_view->wheel_scroll_latching_enabled() | |
309 target = FindEventTarget( | |
310 root_view, | |
311 gfx::Point(event->PositionInWidget().x, event->PositionInWidget().y), | |
312 &transformed_point); | |
313 } | |
292 } | 314 } |
293 | 315 |
294 if (!target) | 316 if (!target) |
295 return; | 317 return; |
296 | 318 |
297 event->SetPositionInWidget(transformed_point.x(), transformed_point.y()); | 319 event->SetPositionInWidget(transformed_point.x(), transformed_point.y()); |
298 target->ProcessMouseWheelEvent(*event, latency); | 320 target->ProcessMouseWheelEvent(*event, latency); |
321 if (root_view->wheel_scroll_latching_enabled() && | |
bokan
2017/06/15 15:47:17
Nit: doesn't hurt to clear this even if latching i
sahel
2017/06/16 14:56:20
Done.
| |
322 (event->phase == blink::WebMouseWheelEvent::kPhaseEnded || | |
323 event->momentum_phase == blink::WebMouseWheelEvent::kPhaseEnded)) { | |
324 wheel_target_.target = nullptr; | |
325 } | |
299 } | 326 } |
300 | 327 |
301 void RenderWidgetHostInputEventRouter::RouteGestureEvent( | 328 void RenderWidgetHostInputEventRouter::RouteGestureEvent( |
302 RenderWidgetHostViewBase* root_view, | 329 RenderWidgetHostViewBase* root_view, |
303 blink::WebGestureEvent* event, | 330 blink::WebGestureEvent* event, |
304 const ui::LatencyInfo& latency) { | 331 const ui::LatencyInfo& latency) { |
305 if (event->IsTargetViewport()) { | 332 if (event->IsTargetViewport()) { |
306 root_view->ProcessGestureEvent(*event, latency); | 333 root_view->ProcessGestureEvent(*event, latency); |
307 return; | 334 return; |
308 } | 335 } |
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
847 std::vector<RenderWidgetHostView*> | 874 std::vector<RenderWidgetHostView*> |
848 RenderWidgetHostInputEventRouter::GetRenderWidgetHostViewsForTests() const { | 875 RenderWidgetHostInputEventRouter::GetRenderWidgetHostViewsForTests() const { |
849 std::vector<RenderWidgetHostView*> hosts; | 876 std::vector<RenderWidgetHostView*> hosts; |
850 for (auto entry : owner_map_) | 877 for (auto entry : owner_map_) |
851 hosts.push_back(entry.second); | 878 hosts.push_back(entry.second); |
852 | 879 |
853 return hosts; | 880 return hosts; |
854 } | 881 } |
855 | 882 |
856 } // namespace content | 883 } // namespace content |
OLD | NEW |