Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(345)

Side by Side Diff: ui/events/blink/input_handler_proxy.cc

Issue 2486673008: Touchpad scroll latching enabled for Mac behind flag. (Closed)
Patch Set: nit fixed Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 return scroll_begin_event; 133 return scroll_begin_event;
134 } 134 }
135 135
136 cc::ScrollState CreateScrollStateForGesture(const WebGestureEvent& event) { 136 cc::ScrollState CreateScrollStateForGesture(const WebGestureEvent& event) {
137 cc::ScrollStateData scroll_state_data; 137 cc::ScrollStateData scroll_state_data;
138 switch (event.type) { 138 switch (event.type) {
139 case WebInputEvent::GestureScrollBegin: 139 case WebInputEvent::GestureScrollBegin:
140 scroll_state_data.position_x = event.x; 140 scroll_state_data.position_x = event.x;
141 scroll_state_data.position_y = event.y; 141 scroll_state_data.position_y = event.y;
142 scroll_state_data.is_beginning = true; 142 scroll_state_data.is_beginning = true;
143 // On Mac, a GestureScrollBegin in the inertial phase indicates a fling
144 // start.
145 if (event.data.scrollBegin.inertialPhase ==
146 WebGestureEvent::MomentumPhase) {
147 scroll_state_data.is_in_inertial_phase = true;
148 }
143 break; 149 break;
144 case WebInputEvent::GestureFlingStart: 150 case WebInputEvent::GestureFlingStart:
145 scroll_state_data.velocity_x = event.data.flingStart.velocityX; 151 scroll_state_data.velocity_x = event.data.flingStart.velocityX;
146 scroll_state_data.velocity_y = event.data.flingStart.velocityY; 152 scroll_state_data.velocity_y = event.data.flingStart.velocityY;
147 scroll_state_data.is_in_inertial_phase = true; 153 scroll_state_data.is_in_inertial_phase = true;
148 break; 154 break;
149 case WebInputEvent::GestureScrollUpdate: 155 case WebInputEvent::GestureScrollUpdate:
150 scroll_state_data.delta_x = -event.data.scrollUpdate.deltaX; 156 scroll_state_data.delta_x = -event.data.scrollUpdate.deltaX;
151 scroll_state_data.delta_y = -event.data.scrollUpdate.deltaY; 157 scroll_state_data.delta_y = -event.data.scrollUpdate.deltaY;
152 scroll_state_data.velocity_x = event.data.scrollUpdate.velocityX; 158 scroll_state_data.velocity_x = event.data.scrollUpdate.velocityX;
153 scroll_state_data.velocity_y = event.data.scrollUpdate.velocityY; 159 scroll_state_data.velocity_y = event.data.scrollUpdate.velocityY;
154 scroll_state_data.is_in_inertial_phase = 160 scroll_state_data.is_in_inertial_phase =
155 event.data.scrollUpdate.inertialPhase == 161 event.data.scrollUpdate.inertialPhase ==
156 WebGestureEvent::MomentumPhase; 162 WebGestureEvent::MomentumPhase;
157 break; 163 break;
158 case WebInputEvent::GestureScrollEnd: 164 case WebInputEvent::GestureScrollEnd:
159 case WebInputEvent::GestureFlingCancel: 165 case WebInputEvent::GestureFlingCancel:
160 scroll_state_data.is_ending = true; 166 scroll_state_data.is_ending = true;
167 scroll_state_data.precedes_fling = event.data.scrollEnd.precedesFling;
161 break; 168 break;
162 default: 169 default:
163 NOTREACHED(); 170 NOTREACHED();
164 break; 171 break;
165 } 172 }
166 return cc::ScrollState(scroll_state_data); 173 return cc::ScrollState(scroll_state_data);
167 } 174 }
168 175
169 void ReportInputEventLatencyUma(const WebInputEvent& event, 176 void ReportInputEventLatencyUma(const WebInputEvent& event,
170 const ui::LatencyInfo& latency_info) { 177 const ui::LatencyInfo& latency_info) {
(...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 if (!gesture_scroll_on_impl_thread_ && !gesture_pinch_on_impl_thread_) 788 if (!gesture_scroll_on_impl_thread_ && !gesture_pinch_on_impl_thread_)
782 return DID_NOT_HANDLE; 789 return DID_NOT_HANDLE;
783 790
784 cc::ScrollState scroll_state = CreateScrollStateForGesture(gesture_event); 791 cc::ScrollState scroll_state = CreateScrollStateForGesture(gesture_event);
785 gfx::Point scroll_point(gesture_event.x, gesture_event.y); 792 gfx::Point scroll_point(gesture_event.x, gesture_event.y);
786 gfx::Vector2dF scroll_delta(-gesture_event.data.scrollUpdate.deltaX, 793 gfx::Vector2dF scroll_delta(-gesture_event.data.scrollUpdate.deltaX,
787 -gesture_event.data.scrollUpdate.deltaY); 794 -gesture_event.data.scrollUpdate.deltaY);
788 795
789 if (ShouldAnimate(gesture_event.data.scrollUpdate.deltaUnits != 796 if (ShouldAnimate(gesture_event.data.scrollUpdate.deltaUnits !=
790 blink::WebGestureEvent::ScrollUnits::Pixels)) { 797 blink::WebGestureEvent::ScrollUnits::Pixels)) {
798 DCHECK(!scroll_state.is_in_inertial_phase());
791 base::TimeTicks event_time = 799 base::TimeTicks event_time =
792 base::TimeTicks() + 800 base::TimeTicks() +
793 base::TimeDelta::FromSecondsD(gesture_event.timeStampSeconds); 801 base::TimeDelta::FromSecondsD(gesture_event.timeStampSeconds);
794 base::TimeDelta delay = base::TimeTicks::Now() - event_time; 802 base::TimeDelta delay = base::TimeTicks::Now() - event_time;
795 switch (input_handler_->ScrollAnimated(scroll_point, scroll_delta, delay) 803 switch (input_handler_->ScrollAnimated(scroll_point, scroll_delta, delay)
796 .thread) { 804 .thread) {
797 case cc::InputHandler::SCROLL_ON_IMPL_THREAD: 805 case cc::InputHandler::SCROLL_ON_IMPL_THREAD:
798 return DID_HANDLE; 806 return DID_HANDLE;
799 case cc::InputHandler::SCROLL_IGNORED: 807 case cc::InputHandler::SCROLL_IGNORED:
800 return DROP_EVENT; 808 return DROP_EVENT;
(...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after
1533 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, 1541 scroll_elasticity_controller_->GetWeakPtr(), gesture_event,
1534 scroll_result)); 1542 scroll_result));
1535 } 1543 }
1536 1544
1537 void InputHandlerProxy::SetTickClockForTesting( 1545 void InputHandlerProxy::SetTickClockForTesting(
1538 std::unique_ptr<base::TickClock> tick_clock) { 1546 std::unique_ptr<base::TickClock> tick_clock) {
1539 tick_clock_ = std::move(tick_clock); 1547 tick_clock_ = std::move(tick_clock);
1540 } 1548 }
1541 1549
1542 } // namespace ui 1550 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698