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; |
144 scroll_state_data.is_beginning = true; | 146 scroll_state_data.is_beginning = true; |
145 // On Mac, a GestureScrollBegin in the inertial phase indicates a fling | 147 // On Mac, a GestureScrollBegin in the inertial phase indicates a fling |
146 // start. | 148 // start. |
147 scroll_state_data.is_in_inertial_phase = | 149 scroll_state_data.is_in_inertial_phase = |
148 (event.data.scroll_begin.inertial_phase == | 150 (event.data.scroll_begin.inertial_phase == |
149 WebGestureEvent::kMomentumPhase); | 151 WebGestureEvent::kMomentumPhase); |
150 break; | 152 break; |
151 case WebInputEvent::kGestureFlingStart: | 153 case WebInputEvent::kGestureFlingStart: |
152 scroll_state_data.velocity_x = event.data.fling_start.velocity_x; | 154 scroll_state_data.velocity_x = event.data.fling_start.velocity_x; |
153 scroll_state_data.velocity_y = event.data.fling_start.velocity_y; | 155 scroll_state_data.velocity_y = event.data.fling_start.velocity_y; |
(...skipping 695 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
849 blink::WebGestureEvent::ScrollUnits::kPage) { | 851 blink::WebGestureEvent::ScrollUnits::kPage) { |
850 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD; | 852 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD; |
851 scroll_status.main_thread_scrolling_reasons = | 853 scroll_status.main_thread_scrolling_reasons = |
852 cc::MainThreadScrollingReason::kContinuingMainThreadScroll; | 854 cc::MainThreadScrollingReason::kContinuingMainThreadScroll; |
853 } else if (gesture_event.data.scroll_begin.target_viewport) { | 855 } else if (gesture_event.data.scroll_begin.target_viewport) { |
854 scroll_status = input_handler_->RootScrollBegin( | 856 scroll_status = input_handler_->RootScrollBegin( |
855 &scroll_state, GestureScrollInputType(gesture_event.source_device)); | 857 &scroll_state, GestureScrollInputType(gesture_event.source_device)); |
856 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units != | 858 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units != |
857 blink::WebGestureEvent::ScrollUnits::kPixels)) { | 859 blink::WebGestureEvent::ScrollUnits::kPixels)) { |
858 DCHECK(!scroll_state.is_in_inertial_phase()); | 860 DCHECK(!scroll_state.is_in_inertial_phase()); |
859 gfx::Point scroll_point(gesture_event.x, gesture_event.y); | 861 scroll_status = input_handler_->ScrollAnimatedBegin(&scroll_state); |
860 scroll_status = input_handler_->ScrollAnimatedBegin(scroll_point); | |
861 } else { | 862 } else { |
862 scroll_status = input_handler_->ScrollBegin( | 863 scroll_status = input_handler_->ScrollBegin( |
863 &scroll_state, GestureScrollInputType(gesture_event.source_device)); | 864 &scroll_state, GestureScrollInputType(gesture_event.source_device)); |
864 } | 865 } |
865 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult", | 866 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult", |
866 scroll_status.thread, | 867 scroll_status.thread, |
867 cc::InputHandler::LAST_SCROLL_STATUS + 1); | 868 cc::InputHandler::LAST_SCROLL_STATUS + 1); |
868 | 869 |
869 RecordMainThreadScrollingReasons(gesture_event.source_device, | 870 RecordMainThreadScrollingReasons(gesture_event.source_device, |
870 scroll_status.main_thread_scrolling_reasons); | 871 scroll_status.main_thread_scrolling_reasons); |
(...skipping 833 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1704 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, | 1705 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, |
1705 scroll_result)); | 1706 scroll_result)); |
1706 } | 1707 } |
1707 | 1708 |
1708 void InputHandlerProxy::SetTickClockForTesting( | 1709 void InputHandlerProxy::SetTickClockForTesting( |
1709 std::unique_ptr<base::TickClock> tick_clock) { | 1710 std::unique_ptr<base::TickClock> tick_clock) { |
1710 tick_clock_ = std::move(tick_clock); | 1711 tick_clock_ = std::move(tick_clock); |
1711 } | 1712 } |
1712 | 1713 |
1713 } // namespace ui | 1714 } // namespace ui |
OLD | NEW |