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

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 213743004: Revert of Early terminate flings when scrolling impossible (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 8 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 | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_impl_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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 2299 matching lines...) Expand 10 before | Expand all | Expand 10 after
2310 2310
2311 // Scrolling along an axis resets accumulated root overscroll for that axis. 2311 // Scrolling along an axis resets accumulated root overscroll for that axis.
2312 if (did_scroll_x) 2312 if (did_scroll_x)
2313 accumulated_root_overscroll_.set_x(0); 2313 accumulated_root_overscroll_.set_x(0);
2314 if (did_scroll_y) 2314 if (did_scroll_y)
2315 accumulated_root_overscroll_.set_y(0); 2315 accumulated_root_overscroll_.set_y(0);
2316 2316
2317 accumulated_root_overscroll_ += unused_root_delta; 2317 accumulated_root_overscroll_ += unused_root_delta;
2318 bool did_overscroll = !unused_root_delta.IsZero(); 2318 bool did_overscroll = !unused_root_delta.IsZero();
2319 if (did_overscroll && input_handler_client_) { 2319 if (did_overscroll && input_handler_client_) {
2320 input_handler_client_->DidOverscroll(accumulated_root_overscroll_, 2320 DidOverscrollParams params;
2321 unused_root_delta); 2321 params.accumulated_overscroll = accumulated_root_overscroll_;
2322 params.latest_overscroll_delta = unused_root_delta;
2323 params.current_fling_velocity = current_fling_velocity_;
2324 input_handler_client_->DidOverscroll(params);
2322 } 2325 }
2323 2326
2324 return did_scroll_content || did_scroll_top_controls; 2327 return did_scroll_content || did_scroll_top_controls;
2325 } 2328 }
2326 2329
2327 // This implements scrolling by page as described here: 2330 // This implements scrolling by page as described here:
2328 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms645601(v=vs.85).asp x#_win32_The_Mouse_Wheel 2331 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms645601(v=vs.85).asp x#_win32_The_Mouse_Wheel
2329 // for events with WHEEL_PAGESCROLL set. 2332 // for events with WHEEL_PAGESCROLL set.
2330 bool LayerTreeHostImpl::ScrollVerticallyByPage(const gfx::Point& viewport_point, 2333 bool LayerTreeHostImpl::ScrollVerticallyByPage(const gfx::Point& viewport_point,
2331 ScrollDirection direction) { 2334 ScrollDirection direction) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2374 2377
2375 void LayerTreeHostImpl::OnRootLayerDelegatedScrollOffsetChanged() { 2378 void LayerTreeHostImpl::OnRootLayerDelegatedScrollOffsetChanged() {
2376 DCHECK(root_layer_scroll_offset_delegate_ != NULL); 2379 DCHECK(root_layer_scroll_offset_delegate_ != NULL);
2377 client_->SetNeedsCommitOnImplThread(); 2380 client_->SetNeedsCommitOnImplThread();
2378 } 2381 }
2379 2382
2380 void LayerTreeHostImpl::ClearCurrentlyScrollingLayer() { 2383 void LayerTreeHostImpl::ClearCurrentlyScrollingLayer() {
2381 active_tree_->ClearCurrentlyScrollingLayer(); 2384 active_tree_->ClearCurrentlyScrollingLayer();
2382 did_lock_scrolling_layer_ = false; 2385 did_lock_scrolling_layer_ = false;
2383 accumulated_root_overscroll_ = gfx::Vector2dF(); 2386 accumulated_root_overscroll_ = gfx::Vector2dF();
2387 current_fling_velocity_ = gfx::Vector2dF();
2384 } 2388 }
2385 2389
2386 void LayerTreeHostImpl::ScrollEnd() { 2390 void LayerTreeHostImpl::ScrollEnd() {
2387 if (top_controls_manager_) 2391 if (top_controls_manager_)
2388 top_controls_manager_->ScrollEnd(); 2392 top_controls_manager_->ScrollEnd();
2389 ClearCurrentlyScrollingLayer(); 2393 ClearCurrentlyScrollingLayer();
2390 StartScrollbarAnimation(); 2394 StartScrollbarAnimation();
2391 } 2395 }
2392 2396
2393 InputHandler::ScrollStatus LayerTreeHostImpl::FlingScrollBegin() { 2397 InputHandler::ScrollStatus LayerTreeHostImpl::FlingScrollBegin() {
(...skipping 10 matching lines...) Expand all
2404 if (!wheel_scrolling_) { 2408 if (!wheel_scrolling_) {
2405 // Allow the fling to lock to the first layer that moves after the initial 2409 // Allow the fling to lock to the first layer that moves after the initial
2406 // fling |ScrollBy()| event. 2410 // fling |ScrollBy()| event.
2407 did_lock_scrolling_layer_ = false; 2411 did_lock_scrolling_layer_ = false;
2408 should_bubble_scrolls_ = false; 2412 should_bubble_scrolls_ = false;
2409 } 2413 }
2410 2414
2411 return ScrollStarted; 2415 return ScrollStarted;
2412 } 2416 }
2413 2417
2418 void LayerTreeHostImpl::NotifyCurrentFlingVelocity(
2419 const gfx::Vector2dF& velocity) {
2420 current_fling_velocity_ = velocity;
2421 }
2422
2414 float LayerTreeHostImpl::DeviceSpaceDistanceToLayer( 2423 float LayerTreeHostImpl::DeviceSpaceDistanceToLayer(
2415 const gfx::PointF& device_viewport_point, 2424 const gfx::PointF& device_viewport_point,
2416 LayerImpl* layer_impl) { 2425 LayerImpl* layer_impl) {
2417 if (!layer_impl) 2426 if (!layer_impl)
2418 return std::numeric_limits<float>::max(); 2427 return std::numeric_limits<float>::max();
2419 2428
2420 gfx::Rect layer_impl_bounds( 2429 gfx::Rect layer_impl_bounds(
2421 layer_impl->content_bounds()); 2430 layer_impl->content_bounds());
2422 2431
2423 gfx::RectF device_viewport_layer_impl_bounds = MathUtil::MapClippedRect( 2432 gfx::RectF device_viewport_layer_impl_bounds = MathUtil::MapClippedRect(
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
3010 swap_promise_monitor_.erase(monitor); 3019 swap_promise_monitor_.erase(monitor);
3011 } 3020 }
3012 3021
3013 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() { 3022 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() {
3014 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin(); 3023 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin();
3015 for (; it != swap_promise_monitor_.end(); it++) 3024 for (; it != swap_promise_monitor_.end(); it++)
3016 (*it)->OnSetNeedsRedrawOnImpl(); 3025 (*it)->OnSetNeedsRedrawOnImpl();
3017 } 3026 }
3018 3027
3019 } // namespace cc 3028 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698