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; | |
bokan
2017/05/30 15:57:44
The delta on a scroll_begin is called a hint, but
sahel
2017/05/30 16:02:06
I had this implementation initially, but ended up
bokan
2017/05/30 16:05:29
Tim is the expert here so I'll defer to him but pe
| |
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 664 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
818 blink::WebGestureEvent::ScrollUnits::kPage) { | 822 blink::WebGestureEvent::ScrollUnits::kPage) { |
819 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD; | 823 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD; |
820 scroll_status.main_thread_scrolling_reasons = | 824 scroll_status.main_thread_scrolling_reasons = |
821 cc::MainThreadScrollingReason::kContinuingMainThreadScroll; | 825 cc::MainThreadScrollingReason::kContinuingMainThreadScroll; |
822 } else if (gesture_event.data.scroll_begin.target_viewport) { | 826 } else if (gesture_event.data.scroll_begin.target_viewport) { |
823 scroll_status = input_handler_->RootScrollBegin( | 827 scroll_status = input_handler_->RootScrollBegin( |
824 &scroll_state, GestureScrollInputType(gesture_event.source_device)); | 828 &scroll_state, GestureScrollInputType(gesture_event.source_device)); |
825 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units != | 829 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units != |
826 blink::WebGestureEvent::ScrollUnits::kPixels)) { | 830 blink::WebGestureEvent::ScrollUnits::kPixels)) { |
827 DCHECK(!scroll_state.is_in_inertial_phase()); | 831 DCHECK(!scroll_state.is_in_inertial_phase()); |
828 gfx::Point scroll_point(gesture_event.x, gesture_event.y); | 832 scroll_status = input_handler_->ScrollAnimatedBegin(&scroll_state); |
829 scroll_status = input_handler_->ScrollAnimatedBegin(scroll_point); | |
830 } else { | 833 } else { |
831 scroll_status = input_handler_->ScrollBegin( | 834 scroll_status = input_handler_->ScrollBegin( |
832 &scroll_state, GestureScrollInputType(gesture_event.source_device)); | 835 &scroll_state, GestureScrollInputType(gesture_event.source_device)); |
833 } | 836 } |
834 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult", | 837 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult", |
835 scroll_status.thread, | 838 scroll_status.thread, |
836 cc::InputHandler::LAST_SCROLL_STATUS + 1); | 839 cc::InputHandler::LAST_SCROLL_STATUS + 1); |
837 | 840 |
838 RecordMainThreadScrollingReasons(gesture_event.source_device, | 841 RecordMainThreadScrollingReasons(gesture_event.source_device, |
839 scroll_status.main_thread_scrolling_reasons); | 842 scroll_status.main_thread_scrolling_reasons); |
(...skipping 804 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1644 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, | 1647 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, |
1645 scroll_result)); | 1648 scroll_result)); |
1646 } | 1649 } |
1647 | 1650 |
1648 void InputHandlerProxy::SetTickClockForTesting( | 1651 void InputHandlerProxy::SetTickClockForTesting( |
1649 std::unique_ptr<base::TickClock> tick_clock) { | 1652 std::unique_ptr<base::TickClock> tick_clock) { |
1650 tick_clock_ = std::move(tick_clock); | 1653 tick_clock_ = std::move(tick_clock); |
1651 } | 1654 } |
1652 | 1655 |
1653 } // namespace ui | 1656 } // namespace ui |
OLD | NEW |