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

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

Issue 2360963003: Revert "Touchpad scroll latching enabled for Mac behind flag." (Closed)
Patch Set: Created 4 years, 3 months 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
« no previous file with comments | « content/browser/renderer_host/input/mouse_wheel_event_queue_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 return scroll_begin_event; 126 return scroll_begin_event;
127 } 127 }
128 128
129 cc::ScrollState CreateScrollStateForGesture(const WebGestureEvent& event) { 129 cc::ScrollState CreateScrollStateForGesture(const WebGestureEvent& event) {
130 cc::ScrollStateData scroll_state_data; 130 cc::ScrollStateData scroll_state_data;
131 switch (event.type) { 131 switch (event.type) {
132 case WebInputEvent::GestureScrollBegin: 132 case WebInputEvent::GestureScrollBegin:
133 scroll_state_data.position_x = event.x; 133 scroll_state_data.position_x = event.x;
134 scroll_state_data.position_y = event.y; 134 scroll_state_data.position_y = event.y;
135 scroll_state_data.is_beginning = true; 135 scroll_state_data.is_beginning = true;
136 // On Mac, a GestureScrollBegin in the inertial phase indicates a fling
137 // start.
138 if (event.data.scrollBegin.inertialPhase ==
139 WebGestureEvent::MomentumPhase) {
140 scroll_state_data.is_in_inertial_phase = true;
141 }
142 break; 136 break;
143 case WebInputEvent::GestureFlingStart: 137 case WebInputEvent::GestureFlingStart:
144 scroll_state_data.velocity_x = event.data.flingStart.velocityX; 138 scroll_state_data.velocity_x = event.data.flingStart.velocityX;
145 scroll_state_data.velocity_y = event.data.flingStart.velocityY; 139 scroll_state_data.velocity_y = event.data.flingStart.velocityY;
146 scroll_state_data.is_in_inertial_phase = true; 140 scroll_state_data.is_in_inertial_phase = true;
147 break; 141 break;
148 case WebInputEvent::GestureScrollUpdate: 142 case WebInputEvent::GestureScrollUpdate:
149 scroll_state_data.delta_x = -event.data.scrollUpdate.deltaX; 143 scroll_state_data.delta_x = -event.data.scrollUpdate.deltaX;
150 scroll_state_data.delta_y = -event.data.scrollUpdate.deltaY; 144 scroll_state_data.delta_y = -event.data.scrollUpdate.deltaY;
151 scroll_state_data.velocity_x = event.data.scrollUpdate.velocityX; 145 scroll_state_data.velocity_x = event.data.scrollUpdate.velocityX;
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 ? -wheel_event.deltaY 484 ? -wheel_event.deltaY
491 : 0); 485 : 0);
492 486
493 if (wheel_event.scrollByPage) { 487 if (wheel_event.scrollByPage) {
494 // TODO(jamesr): We don't properly handle scroll by page in the compositor 488 // TODO(jamesr): We don't properly handle scroll by page in the compositor
495 // thread, so punt it to the main thread. http://crbug.com/236639 489 // thread, so punt it to the main thread. http://crbug.com/236639
496 RecordMainThreadScrollingReasons( 490 RecordMainThreadScrollingReasons(
497 blink::WebGestureDeviceTouchpad, 491 blink::WebGestureDeviceTouchpad,
498 cc::MainThreadScrollingReason::kPageBasedScrolling); 492 cc::MainThreadScrollingReason::kPageBasedScrolling);
499 return DID_NOT_HANDLE; 493 return DID_NOT_HANDLE;
494 } else if (ShouldAnimate(wheel_event.hasPreciseScrollingDeltas)) {
495 cc::InputHandler::ScrollStatus scroll_status =
496 input_handler_->ScrollAnimated(gfx::Point(wheel_event.x, wheel_event.y),
497 scroll_delta);
498
499 RecordMainThreadScrollingReasons(
500 blink::WebGestureDeviceTouchpad,
501 scroll_status.main_thread_scrolling_reasons);
502
503 switch (scroll_status.thread) {
504 case cc::InputHandler::SCROLL_ON_IMPL_THREAD:
505 return DID_HANDLE;
506 case cc::InputHandler::SCROLL_IGNORED:
507 return DROP_EVENT;
508 default:
509 return DID_NOT_HANDLE;
510 }
500 } else { 511 } else {
501 DCHECK(!ShouldAnimate(wheel_event.hasPreciseScrollingDeltas));
502 cc::ScrollStateData scroll_state_begin_data; 512 cc::ScrollStateData scroll_state_begin_data;
503 scroll_state_begin_data.position_x = wheel_event.x; 513 scroll_state_begin_data.position_x = wheel_event.x;
504 scroll_state_begin_data.position_y = wheel_event.y; 514 scroll_state_begin_data.position_y = wheel_event.y;
505 scroll_state_begin_data.is_beginning = true; 515 scroll_state_begin_data.is_beginning = true;
506 cc::ScrollState scroll_state_begin(scroll_state_begin_data); 516 cc::ScrollState scroll_state_begin(scroll_state_begin_data);
507 cc::InputHandler::ScrollStatus scroll_status = input_handler_->ScrollBegin( 517 cc::InputHandler::ScrollStatus scroll_status = input_handler_->ScrollBegin(
508 &scroll_state_begin, cc::InputHandler::WHEEL); 518 &scroll_state_begin, cc::InputHandler::WHEEL);
509 519
510 RecordMainThreadScrollingReasons( 520 RecordMainThreadScrollingReasons(
511 blink::WebGestureDeviceTouchpad, 521 blink::WebGestureDeviceTouchpad,
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 if (!gesture_scroll_on_impl_thread_ && !gesture_pinch_on_impl_thread_) 635 if (!gesture_scroll_on_impl_thread_ && !gesture_pinch_on_impl_thread_)
626 return DID_NOT_HANDLE; 636 return DID_NOT_HANDLE;
627 637
628 cc::ScrollState scroll_state = CreateScrollStateForGesture(gesture_event); 638 cc::ScrollState scroll_state = CreateScrollStateForGesture(gesture_event);
629 gfx::Point scroll_point(gesture_event.x, gesture_event.y); 639 gfx::Point scroll_point(gesture_event.x, gesture_event.y);
630 gfx::Vector2dF scroll_delta(-gesture_event.data.scrollUpdate.deltaX, 640 gfx::Vector2dF scroll_delta(-gesture_event.data.scrollUpdate.deltaX,
631 -gesture_event.data.scrollUpdate.deltaY); 641 -gesture_event.data.scrollUpdate.deltaY);
632 642
633 if (ShouldAnimate(gesture_event.data.scrollUpdate.deltaUnits != 643 if (ShouldAnimate(gesture_event.data.scrollUpdate.deltaUnits !=
634 blink::WebGestureEvent::ScrollUnits::Pixels)) { 644 blink::WebGestureEvent::ScrollUnits::Pixels)) {
635 DCHECK(!scroll_state.is_in_inertial_phase());
636 switch (input_handler_->ScrollAnimated(scroll_point, scroll_delta).thread) { 645 switch (input_handler_->ScrollAnimated(scroll_point, scroll_delta).thread) {
637 case cc::InputHandler::SCROLL_ON_IMPL_THREAD: 646 case cc::InputHandler::SCROLL_ON_IMPL_THREAD:
638 return DID_HANDLE; 647 return DID_HANDLE;
639 case cc::InputHandler::SCROLL_IGNORED: 648 case cc::InputHandler::SCROLL_IGNORED:
640 return DROP_EVENT; 649 return DROP_EVENT;
641 default: 650 default:
642 return DID_NOT_HANDLE; 651 return DID_NOT_HANDLE;
643 } 652 }
644 } 653 }
645 cc::InputHandlerScrollResult scroll_result = 654 cc::InputHandlerScrollResult scroll_result =
(...skipping 690 matching lines...) Expand 10 before | Expand all | Expand 10 after
1336 // is made asynchronously, to minimize divergence between main thread and 1345 // is made asynchronously, to minimize divergence between main thread and
1337 // impl thread event handling paths. 1346 // impl thread event handling paths.
1338 base::ThreadTaskRunnerHandle::Get()->PostTask( 1347 base::ThreadTaskRunnerHandle::Get()->PostTask(
1339 FROM_HERE, 1348 FROM_HERE,
1340 base::Bind(&InputScrollElasticityController::ObserveGestureEventAndResult, 1349 base::Bind(&InputScrollElasticityController::ObserveGestureEventAndResult,
1341 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, 1350 scroll_elasticity_controller_->GetWeakPtr(), gesture_event,
1342 scroll_result)); 1351 scroll_result));
1343 } 1352 }
1344 1353
1345 } // namespace ui 1354 } // namespace ui
OLDNEW
« no previous file with comments | « content/browser/renderer_host/input/mouse_wheel_event_queue_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698