| Index: cc/layers/layer.cc
|
| diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc
|
| index fb72c73b9c483b0b289a429e75e4095e3b71797d..3817115f709780042a40cecba6ec00312185b0b2 100644
|
| --- a/cc/layers/layer.cc
|
| +++ b/cc/layers/layer.cc
|
| @@ -71,6 +71,7 @@ Layer::Layer()
|
| force_render_surface_(false),
|
| transform_is_invertible_(true),
|
| has_render_surface_(false),
|
| + clear_impl_scroll_delta_(false),
|
| background_color_(0),
|
| opacity_(1.f),
|
| blend_mode_(SkXfermode::kSrcOver_Mode),
|
| @@ -970,12 +971,18 @@ void Layer::PushPropertiesTo(LayerImpl* layer) {
|
| // in LayerImpl::ApplyScrollDeltasSinceBeginMainFrame in a separate tree walk.
|
| if (layer->layer_tree_impl()->settings().impl_side_painting) {
|
| layer->SetScrollOffset(scroll_offset_);
|
| + if (clear_impl_scroll_delta_)
|
| + layer->ClearScrollDeltaAtActivation();
|
| } else {
|
| - layer->SetScrollOffsetAndDelta(
|
| - scroll_offset_,
|
| - layer->ScrollDelta() - layer->sent_scroll_delta());
|
| + if (clear_impl_scroll_delta_) {
|
| + layer->SetScrollOffsetAndDelta(scroll_offset_, gfx::Vector2dF());
|
| + } else {
|
| + layer->SetScrollOffsetAndDelta(
|
| + scroll_offset_, layer->ScrollDelta() - layer->sent_scroll_delta());
|
| + }
|
| layer->SetSentScrollDelta(gfx::Vector2dF());
|
| }
|
| + clear_impl_scroll_delta_ = false;
|
|
|
| // Wrap the copy_requests_ in a PostTask to the main thread.
|
| ScopedPtrVector<CopyOutputRequest> main_thread_copy_requests;
|
| @@ -1145,6 +1152,10 @@ void Layer::OnAnimationWaitingForDeletion() {
|
| SetNeedsPushProperties();
|
| }
|
|
|
| +void Layer::OnScrollOffsetAnimationRemoved() {
|
| + clear_impl_scroll_delta_ = true;
|
| +}
|
| +
|
| bool Layer::IsActive() const {
|
| return true;
|
| }
|
|
|