OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ui/events/blink/input_handler_proxy.h" | 5 #include "ui/events/blink/input_handler_proxy.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 | 10 |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 scroll_begin_event.data.scroll_begin.delta_y_hint = 0; | 134 scroll_begin_event.data.scroll_begin.delta_y_hint = 0; |
135 return scroll_begin_event; | 135 return scroll_begin_event; |
136 } | 136 } |
137 | 137 |
138 cc::ScrollState CreateScrollStateForGesture(const WebGestureEvent& event) { | 138 cc::ScrollState CreateScrollStateForGesture(const WebGestureEvent& event) { |
139 cc::ScrollStateData scroll_state_data; | 139 cc::ScrollStateData scroll_state_data; |
140 switch (event.GetType()) { | 140 switch (event.GetType()) { |
141 case WebInputEvent::kGestureScrollBegin: | 141 case WebInputEvent::kGestureScrollBegin: |
142 scroll_state_data.position_x = event.x; | 142 scroll_state_data.position_x = event.x; |
143 scroll_state_data.position_y = event.y; | 143 scroll_state_data.position_y = event.y; |
| 144 scroll_state_data.delta_x_hint = -event.data.scroll_begin.delta_x_hint; |
| 145 scroll_state_data.delta_y_hint = -event.data.scroll_begin.delta_y_hint; |
| 146 scroll_state_data.ignore_delta_hints = |
| 147 event.data.scroll_begin.ignore_delta_hints; |
144 scroll_state_data.is_beginning = true; | 148 scroll_state_data.is_beginning = true; |
145 // On Mac, a GestureScrollBegin in the inertial phase indicates a fling | 149 // On Mac, a GestureScrollBegin in the inertial phase indicates a fling |
146 // start. | 150 // start. |
147 scroll_state_data.is_in_inertial_phase = | 151 scroll_state_data.is_in_inertial_phase = |
148 (event.data.scroll_begin.inertial_phase == | 152 (event.data.scroll_begin.inertial_phase == |
149 WebGestureEvent::kMomentumPhase); | 153 WebGestureEvent::kMomentumPhase); |
150 break; | 154 break; |
151 case WebInputEvent::kGestureFlingStart: | 155 case WebInputEvent::kGestureFlingStart: |
152 scroll_state_data.velocity_x = event.data.fling_start.velocity_x; | 156 scroll_state_data.velocity_x = event.data.fling_start.velocity_x; |
153 scroll_state_data.velocity_y = event.data.fling_start.velocity_y; | 157 scroll_state_data.velocity_y = event.data.fling_start.velocity_y; |
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
831 blink::WebGestureEvent::ScrollUnits::kPage) { | 835 blink::WebGestureEvent::ScrollUnits::kPage) { |
832 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD; | 836 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD; |
833 scroll_status.main_thread_scrolling_reasons = | 837 scroll_status.main_thread_scrolling_reasons = |
834 cc::MainThreadScrollingReason::kContinuingMainThreadScroll; | 838 cc::MainThreadScrollingReason::kContinuingMainThreadScroll; |
835 } else if (gesture_event.data.scroll_begin.target_viewport) { | 839 } else if (gesture_event.data.scroll_begin.target_viewport) { |
836 scroll_status = input_handler_->RootScrollBegin( | 840 scroll_status = input_handler_->RootScrollBegin( |
837 &scroll_state, GestureScrollInputType(gesture_event.source_device)); | 841 &scroll_state, GestureScrollInputType(gesture_event.source_device)); |
838 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units != | 842 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units != |
839 blink::WebGestureEvent::ScrollUnits::kPixels)) { | 843 blink::WebGestureEvent::ScrollUnits::kPixels)) { |
840 DCHECK(!scroll_state.is_in_inertial_phase()); | 844 DCHECK(!scroll_state.is_in_inertial_phase()); |
841 gfx::Point scroll_point(gesture_event.x, gesture_event.y); | 845 scroll_status = input_handler_->ScrollAnimatedBegin(&scroll_state); |
842 scroll_status = input_handler_->ScrollAnimatedBegin(scroll_point); | |
843 } else { | 846 } else { |
844 scroll_status = input_handler_->ScrollBegin( | 847 scroll_status = input_handler_->ScrollBegin( |
845 &scroll_state, GestureScrollInputType(gesture_event.source_device)); | 848 &scroll_state, GestureScrollInputType(gesture_event.source_device)); |
846 } | 849 } |
847 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult", | 850 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult", |
848 scroll_status.thread, | 851 scroll_status.thread, |
849 cc::InputHandler::LAST_SCROLL_STATUS + 1); | 852 cc::InputHandler::LAST_SCROLL_STATUS + 1); |
850 | 853 |
851 RecordMainThreadScrollingReasons(gesture_event.source_device, | 854 RecordMainThreadScrollingReasons(gesture_event.source_device, |
852 scroll_status.main_thread_scrolling_reasons); | 855 scroll_status.main_thread_scrolling_reasons); |
(...skipping 833 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1686 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, | 1689 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, |
1687 scroll_result)); | 1690 scroll_result)); |
1688 } | 1691 } |
1689 | 1692 |
1690 void InputHandlerProxy::SetTickClockForTesting( | 1693 void InputHandlerProxy::SetTickClockForTesting( |
1691 std::unique_ptr<base::TickClock> tick_clock) { | 1694 std::unique_ptr<base::TickClock> tick_clock) { |
1692 tick_clock_ = std::move(tick_clock); | 1695 tick_clock_ = std::move(tick_clock); |
1693 } | 1696 } |
1694 | 1697 |
1695 } // namespace ui | 1698 } // namespace ui |
OLD | NEW |