Index: cc/trees/layer_tree_host_impl.cc |
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
index 2d7a9323edf74e7bceb7eab96100f2d8996b12f6..8cf9d014e503fa9216faac5d255d4b1560ce57c1 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -3027,15 +3027,23 @@ void LayerTreeHostImpl::AnimatePageScale(base::TimeTicks monotonic_time) { |
void LayerTreeHostImpl::AnimateTopControls(base::TimeTicks time) { |
if (!top_controls_manager_ || !top_controls_manager_->animation()) |
return; |
+ |
gfx::Vector2dF scroll = top_controls_manager_->Animate(time); |
+ |
+ if (top_controls_manager_->animation()) |
+ SetNeedsAnimate(); |
+ |
if (active_tree_->TotalScrollOffset().y() == 0.f) |
return; |
- if (!scroll.IsZero()) { |
- ScrollViewportBy(gfx::ScaleVector2d( |
- scroll, 1.f / active_tree_->total_page_scale_factor())); |
- SetNeedsRedraw(); |
- } |
- SetNeedsAnimate(); |
+ |
+ if (scroll.IsZero()) |
+ return; |
+ |
+ ScrollViewportBy(gfx::ScaleVector2d( |
+ scroll, 1.f / active_tree_->total_page_scale_factor())); |
+ SetNeedsRedraw(); |
+ client_->SetNeedsCommitOnImplThread(); |
+ client_->RenewTreePriority(); |
} |
void LayerTreeHostImpl::AnimateLayers(base::TimeTicks monotonic_time) { |