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

Side by Side Diff: cc/layer_tree_impl.cc

Issue 12408028: cc: Delay start of scrollbar animation setNeedsRedraw. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase to 188682 Created 7 years, 9 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/layer_tree_impl.h ('k') | cc/resource_update_controller.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/layer_tree_impl.h" 5 #include "cc/layer_tree_impl.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "cc/animation.h" 8 #include "cc/animation.h"
9 #include "cc/animation_id_provider.h" 9 #include "cc/animation_id_provider.h"
10 #include "cc/heads_up_display_layer_impl.h" 10 #include "cc/heads_up_display_layer_impl.h"
11 #include "cc/keyframed_animation_curve.h" 11 #include "cc/keyframed_animation_curve.h"
12 #include "cc/layer.h" 12 #include "cc/layer.h"
13 #include "cc/layer_tree_host_common.h" 13 #include "cc/layer_tree_host_common.h"
14 #include "cc/layer_tree_host_impl.h" 14 #include "cc/layer_tree_host_impl.h"
15 #include "cc/pinch_zoom_scrollbar.h" 15 #include "cc/pinch_zoom_scrollbar.h"
16 #include "cc/scrollbar_animation_controller.h"
16 #include "cc/scrollbar_layer_impl.h" 17 #include "cc/scrollbar_layer_impl.h"
17 #include "ui/gfx/size_conversions.h" 18 #include "ui/gfx/size_conversions.h"
18 #include "ui/gfx/vector2d_conversions.h" 19 #include "ui/gfx/vector2d_conversions.h"
19 20
20 namespace cc { 21 namespace cc {
21 22
22 LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl) 23 LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl)
23 : layer_tree_host_impl_(layer_tree_host_impl), 24 : layer_tree_host_impl_(layer_tree_host_impl),
24 source_frame_number_(-1), 25 source_frame_number_(-1),
25 hud_layer_(0), 26 hud_layer_(0),
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 139
139 LayerImpl* LayerTreeImpl::RootClipLayer() const { 140 LayerImpl* LayerTreeImpl::RootClipLayer() const {
140 return root_scroll_layer_ ? root_scroll_layer_->parent() : NULL; 141 return root_scroll_layer_ ? root_scroll_layer_->parent() : NULL;
141 } 142 }
142 143
143 LayerImpl* LayerTreeImpl::CurrentlyScrollingLayer() const { 144 LayerImpl* LayerTreeImpl::CurrentlyScrollingLayer() const {
144 DCHECK(IsActiveTree()); 145 DCHECK(IsActiveTree());
145 return currently_scrolling_layer_; 146 return currently_scrolling_layer_;
146 } 147 }
147 148
149 void LayerTreeImpl::SetCurrentlyScrollingLayer(LayerImpl* layer) {
150 if (currently_scrolling_layer_ == layer)
151 return;
152
153 if (currently_scrolling_layer_ &&
154 currently_scrolling_layer_->scrollbar_animation_controller())
155 currently_scrolling_layer_->scrollbar_animation_controller()
156 ->didScrollGestureEnd(base::TimeTicks::Now());
157 currently_scrolling_layer_ = layer;
158 if (layer && layer->scrollbar_animation_controller())
159 layer->scrollbar_animation_controller()->didScrollGestureBegin();
160 }
161
148 void LayerTreeImpl::ClearCurrentlyScrollingLayer() { 162 void LayerTreeImpl::ClearCurrentlyScrollingLayer() {
149 currently_scrolling_layer_ = NULL; 163 SetCurrentlyScrollingLayer(NULL);
150 scrolling_layer_id_from_previous_tree_ = 0; 164 scrolling_layer_id_from_previous_tree_ = 0;
151 } 165 }
152 166
153 void LayerTreeImpl::SetPageScaleFactorAndLimits(float page_scale_factor, 167 void LayerTreeImpl::SetPageScaleFactorAndLimits(float page_scale_factor,
154 float min_page_scale_factor, float max_page_scale_factor) { 168 float min_page_scale_factor, float max_page_scale_factor) {
155 if (!page_scale_factor) 169 if (!page_scale_factor)
156 return; 170 return;
157 171
158 min_page_scale_factor_ = min_page_scale_factor; 172 min_page_scale_factor_ = min_page_scale_factor;
159 max_page_scale_factor_ = max_page_scale_factor; 173 max_page_scale_factor_ = max_page_scale_factor;
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 layer_id_map_[layer->id()] = layer; 369 layer_id_map_[layer->id()] = layer;
356 } 370 }
357 371
358 void LayerTreeImpl::UnregisterLayer(LayerImpl* layer) { 372 void LayerTreeImpl::UnregisterLayer(LayerImpl* layer) {
359 DCHECK(LayerById(layer->id())); 373 DCHECK(LayerById(layer->id()));
360 layer_id_map_.erase(layer->id()); 374 layer_id_map_.erase(layer->id());
361 } 375 }
362 376
363 void LayerTreeImpl::PushPersistedState(LayerTreeImpl* pendingTree) { 377 void LayerTreeImpl::PushPersistedState(LayerTreeImpl* pendingTree) {
364 int id = currently_scrolling_layer_ ? currently_scrolling_layer_->id() : 0; 378 int id = currently_scrolling_layer_ ? currently_scrolling_layer_->id() : 0;
365 pendingTree->set_currently_scrolling_layer( 379 pendingTree->SetCurrentlyScrollingLayer(
366 LayerTreeHostCommon::findLayerInSubtree(pendingTree->root_layer(), id)); 380 LayerTreeHostCommon::findLayerInSubtree(pendingTree->root_layer(), id));
367 } 381 }
368 382
369 static void DidBecomeActiveRecursive(LayerImpl* layer) { 383 static void DidBecomeActiveRecursive(LayerImpl* layer) {
370 layer->DidBecomeActive(); 384 layer->DidBecomeActive();
371 for (size_t i = 0; i < layer->children().size(); ++i) 385 for (size_t i = 0; i < layer->children().size(); ++i)
372 DidBecomeActiveRecursive(layer->children()[i]); 386 DidBecomeActiveRecursive(layer->children()[i]);
373 } 387 }
374 388
375 void LayerTreeImpl::DidBecomeActive() { 389 void LayerTreeImpl::DidBecomeActive() {
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 StartFadeOutAnimation(PinchZoomScrollbarVertical()); 655 StartFadeOutAnimation(PinchZoomScrollbarVertical());
642 } 656 }
643 657
644 bool LayerTreeImpl::HasPinchZoomScrollbars() const { 658 bool LayerTreeImpl::HasPinchZoomScrollbars() const {
645 return pinch_zoom_scrollbar_horizontal_layer_id_ != Layer::INVALID_ID && 659 return pinch_zoom_scrollbar_horizontal_layer_id_ != Layer::INVALID_ID &&
646 pinch_zoom_scrollbar_vertical_layer_id_ != Layer::INVALID_ID; 660 pinch_zoom_scrollbar_vertical_layer_id_ != Layer::INVALID_ID;
647 } 661 }
648 662
649 663
650 } // namespace cc 664 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_tree_impl.h ('k') | cc/resource_update_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698