Chromium Code Reviews| Index: cc/layers/layer.cc |
| diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc |
| index 1441ccd64887db87b2b26c8e66c9bcd6e3d6d0d5..fc4629ce9d1a0a78f045d93abc9bd30e934f41f3 100644 |
| --- a/cc/layers/layer.cc |
| +++ b/cc/layers/layer.cc |
| @@ -884,6 +884,11 @@ 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.synced_scroll_offset(id()) |
| + ->PushFromMainThread(scroll_offset); |
|
ajuma
2016/03/01 22:54:20
How about adding a SetScrollOffset method to Scrol
sunxd
2016/03/02 17:45:34
Done.
|
| + |
| if (TransformNode* transform_node = |
| layer_tree_host_->property_trees()->transform_tree.Node( |
| transform_tree_index())) { |
| @@ -923,6 +928,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); |
| + |
| if (TransformNode* transform_node = |
| layer_tree_host_->property_trees()->transform_tree.Node( |
| transform_tree_index())) { |
| @@ -1339,9 +1350,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()); |
| { |