Chromium Code Reviews| Index: cc/layers/layer.cc |
| diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc |
| index 38427416ddb98f0ad442ed2d10bca8a819db13f7..c75257e3adffb0dd2a6c291db76436b3dd6535bc 100644 |
| --- a/cc/layers/layer.cc |
| +++ b/cc/layers/layer.cc |
| @@ -884,6 +884,10 @@ void Layer::SetScrollOffset(const gfx::ScrollOffset& scroll_offset) { |
| if (!layer_tree_host_) |
| return; |
| + if (scroll_tree_index() != -1 && scrollable()) |
| + layer_tree_host_->property_trees()->scroll_tree.SetScrollOffset( |
| + id(), scroll_offset); |
| + |
| if (TransformNode* transform_node = |
| layer_tree_host_->property_trees()->transform_tree.Node( |
| transform_tree_index())) { |
| @@ -923,6 +927,12 @@ void Layer::SetScrollOffsetFromImplSide( |
| SetNeedsPushProperties(); |
| bool needs_rebuild = true; |
| + |
| + if (scroll_tree_index() != -1 && scrollable()) |
| + layer_tree_host_->property_trees() |
| + ->scroll_tree.synced_scroll_offset(id()) |
| + ->PushFromMainThread(scroll_offset); |
|
ajuma
2016/03/02 18:43:09
How about calling ScrollTree::SetScrollOffset here
sunxd
2016/03/02 20:52:55
Done.
|
| + |
| if (TransformNode* transform_node = |
| layer_tree_host_->property_trees()->transform_tree.Node( |
| transform_tree_index())) { |
| @@ -1337,9 +1347,10 @@ void Layer::PushPropertiesTo(LayerImpl* layer) { |
| // active tree. To do so, avoid scrolling the pending tree along with it |
| // instead of trying to undo that scrolling later. |
| if (ScrollOffsetAnimationWasInterrupted()) |
| - layer->PushScrollOffsetFromMainThreadAndClobberActiveValue(scroll_offset_); |
| - else |
| - layer->PushScrollOffsetFromMainThread(scroll_offset_); |
| + layer_tree_host() |
| + ->property_trees() |
| + ->scroll_tree.synced_scroll_offset(layer->id()) |
| + ->set_clobber_active_value(); |
| layer->SetScrollCompensationAdjustment(ScrollCompensationAdjustment()); |
| { |
| @@ -1700,8 +1711,7 @@ void Layer::FromLayerSpecificPropertiesProto( |
| } |
| scoped_ptr<LayerImpl> Layer::CreateLayerImpl(LayerTreeImpl* tree_impl) { |
| - return LayerImpl::Create(tree_impl, layer_id_, |
| - new LayerImpl::SyncedScrollOffset); |
| + return LayerImpl::Create(tree_impl, layer_id_, new SyncedScrollOffset); |
| } |
| bool Layer::DrawsContent() const { |