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

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

Issue 1720023002: Wheel scrolling with smooth scrolling enabled would cause an extra animation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix failing test with adjusted scrollbegin/scroll end approach Created 4 years, 10 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 | « no previous file | ui/events/blink/input_handler_proxy_unittest.cc » ('j') | 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 579 matching lines...) Expand 10 before | Expand all | Expand 10 after
590 blink::WebGestureEvent::ScrollUnits::Page) { 590 blink::WebGestureEvent::ScrollUnits::Page) {
591 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD; 591 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD;
592 scroll_status.main_thread_scrolling_reasons = 592 scroll_status.main_thread_scrolling_reasons =
593 cc::MainThreadScrollingReason::kContinuingMainThreadScroll; 593 cc::MainThreadScrollingReason::kContinuingMainThreadScroll;
594 } else if (gesture_event.data.scrollBegin.targetViewport) { 594 } else if (gesture_event.data.scrollBegin.targetViewport) {
595 scroll_status = input_handler_->RootScrollBegin(&scroll_state, 595 scroll_status = input_handler_->RootScrollBegin(&scroll_state,
596 cc::InputHandler::GESTURE); 596 cc::InputHandler::GESTURE);
597 } else if (smooth_scroll_enabled_ && 597 } else if (smooth_scroll_enabled_ &&
598 gesture_event.data.scrollBegin.deltaHintUnits == 598 gesture_event.data.scrollBegin.deltaHintUnits ==
599 blink::WebGestureEvent::ScrollUnits::Pixels) { 599 blink::WebGestureEvent::ScrollUnits::Pixels) {
600 gfx::Vector2dF scroll_delta(-gesture_event.data.scrollBegin.deltaXHint, 600 // Generate a scroll begin/end combination to determine if
601 -gesture_event.data.scrollBegin.deltaYHint); 601 // this can actually be handled by the impl thread or not. But
602 scroll_status = input_handler_->ScrollAnimated( 602 // don't generate any scroll yet; GestureScrollUpdate will generate
603 gfx::Point(gesture_event.x, gesture_event.y), scroll_delta); 603 // the scroll animation.
604 scroll_status = input_handler_->ScrollBegin(
605 &scroll_state, cc::InputHandler::ANIMATED_WHEEL);
606 if (scroll_status.thread == cc::InputHandler::SCROLL_ON_IMPL_THREAD) {
607 cc::ScrollStateData scroll_state_end_data;
608 scroll_state_end_data.is_ending = true;
609 cc::ScrollState scroll_state_end(scroll_state_end_data);
610 input_handler_->ScrollEnd(&scroll_state_end);
611 }
604 } else { 612 } else {
605 scroll_status = 613 scroll_status =
606 input_handler_->ScrollBegin(&scroll_state, cc::InputHandler::GESTURE); 614 input_handler_->ScrollBegin(&scroll_state, cc::InputHandler::GESTURE);
607 } 615 }
608 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult", 616 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult",
609 scroll_status.thread, 617 scroll_status.thread,
610 cc::InputHandler::LAST_SCROLL_STATUS + 1); 618 cc::InputHandler::LAST_SCROLL_STATUS + 1);
611 619
612 RecordMainThreadScrollingReasons(gesture_event.type, 620 RecordMainThreadScrollingReasons(gesture_event.type,
613 scroll_status.main_thread_scrolling_reasons); 621 scroll_status.main_thread_scrolling_reasons);
(...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after
1296 // trigger a scroll, e.g., with a trivial time delta between fling updates. 1304 // trigger a scroll, e.g., with a trivial time delta between fling updates.
1297 // Return true in this case to prevent early fling termination. 1305 // Return true in this case to prevent early fling termination.
1298 if (std::abs(clipped_increment.width) < kScrollEpsilon && 1306 if (std::abs(clipped_increment.width) < kScrollEpsilon &&
1299 std::abs(clipped_increment.height) < kScrollEpsilon) 1307 std::abs(clipped_increment.height) < kScrollEpsilon)
1300 return true; 1308 return true;
1301 1309
1302 return did_scroll; 1310 return did_scroll;
1303 } 1311 }
1304 1312
1305 } // namespace ui 1313 } // namespace ui
OLDNEW
« no previous file with comments | « no previous file | ui/events/blink/input_handler_proxy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698