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 if (root_view->wheel_scroll_latching_enabled()) { | 287 } else { |
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() | |
308 target = FindEventTarget( | 288 target = FindEventTarget( |
309 root_view, | 289 root_view, |
310 gfx::Point(event->PositionInWidget().x, event->PositionInWidget().y), | 290 gfx::Point(event->PositionInWidget().x, event->PositionInWidget().y), |
311 &transformed_point); | 291 &transformed_point); |
312 } | 292 } |
313 | 293 |
314 if (!target) | 294 if (!target) |
315 return; | 295 return; |
316 | 296 |
317 event->SetPositionInWidget(transformed_point.x(), transformed_point.y()); | 297 event->SetPositionInWidget(transformed_point.x(), transformed_point.y()); |
318 target->ProcessMouseWheelEvent(*event, latency); | 298 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 } | |
325 } | 299 } |
326 | 300 |
327 void RenderWidgetHostInputEventRouter::RouteGestureEvent( | 301 void RenderWidgetHostInputEventRouter::RouteGestureEvent( |
328 RenderWidgetHostViewBase* root_view, | 302 RenderWidgetHostViewBase* root_view, |
329 blink::WebGestureEvent* event, | 303 blink::WebGestureEvent* event, |
330 const ui::LatencyInfo& latency) { | 304 const ui::LatencyInfo& latency) { |
331 if (event->IsTargetViewport()) { | 305 if (event->IsTargetViewport()) { |
332 root_view->ProcessGestureEvent(*event, latency); | 306 root_view->ProcessGestureEvent(*event, latency); |
333 return; | 307 return; |
334 } | 308 } |
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
873 std::vector<RenderWidgetHostView*> | 847 std::vector<RenderWidgetHostView*> |
874 RenderWidgetHostInputEventRouter::GetRenderWidgetHostViewsForTests() const { | 848 RenderWidgetHostInputEventRouter::GetRenderWidgetHostViewsForTests() const { |
875 std::vector<RenderWidgetHostView*> hosts; | 849 std::vector<RenderWidgetHostView*> hosts; |
876 for (auto entry : owner_map_) | 850 for (auto entry : owner_map_) |
877 hosts.push_back(entry.second); | 851 hosts.push_back(entry.second); |
878 | 852 |
879 return hosts; | 853 return hosts; |
880 } | 854 } |
881 | 855 |
882 } // namespace content | 856 } // namespace content |
OLD | NEW |