OLD | NEW |
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/trees/layer_tree_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
484 overscroll_elasticity_layer_.get() ? overscroll_elasticity_layer_->id() | 484 overscroll_elasticity_layer_.get() ? overscroll_elasticity_layer_->id() |
485 : Layer::INVALID_ID, | 485 : Layer::INVALID_ID, |
486 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(), | 486 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(), |
487 outer_viewport_scroll_layer_.get() ? outer_viewport_scroll_layer_->id() | 487 outer_viewport_scroll_layer_.get() ? outer_viewport_scroll_layer_->id() |
488 : Layer::INVALID_ID); | 488 : Layer::INVALID_ID); |
489 DCHECK(inner_viewport_scroll_layer_->IsContainerForFixedPositionLayers()); | 489 DCHECK(inner_viewport_scroll_layer_->IsContainerForFixedPositionLayers()); |
490 } else { | 490 } else { |
491 sync_tree->ClearViewportLayers(); | 491 sync_tree->ClearViewportLayers(); |
492 } | 492 } |
493 | 493 |
| 494 sync_tree->SetRootScrollerLayerFromId(root_scroller_layer_.get() |
| 495 ? root_scroller_layer_->id() |
| 496 : Layer::INVALID_ID); |
| 497 |
494 sync_tree->RegisterSelection(selection_); | 498 sync_tree->RegisterSelection(selection_); |
495 | 499 |
496 bool property_trees_changed_on_active_tree = | 500 bool property_trees_changed_on_active_tree = |
497 sync_tree->IsActiveTree() && sync_tree->property_trees()->changed; | 501 sync_tree->IsActiveTree() && sync_tree->property_trees()->changed; |
498 // Property trees may store damage status. We preserve the sync tree damage | 502 // Property trees may store damage status. We preserve the sync tree damage |
499 // status by pushing the damage status from sync tree property trees to main | 503 // status by pushing the damage status from sync tree property trees to main |
500 // thread property trees or by moving it onto the layers. | 504 // thread property trees or by moving it onto the layers. |
501 if (root_layer_ && property_trees_changed_on_active_tree) { | 505 if (root_layer_ && property_trees_changed_on_active_tree) { |
502 if (property_trees_.sequence_number == | 506 if (property_trees_.sequence_number == |
503 sync_tree->property_trees()->sequence_number) | 507 sync_tree->property_trees()->sequence_number) |
(...skipping 705 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1209 scoped_refptr<Layer> inner_viewport_scroll_layer, | 1213 scoped_refptr<Layer> inner_viewport_scroll_layer, |
1210 scoped_refptr<Layer> outer_viewport_scroll_layer) { | 1214 scoped_refptr<Layer> outer_viewport_scroll_layer) { |
1211 DCHECK(!inner_viewport_scroll_layer || | 1215 DCHECK(!inner_viewport_scroll_layer || |
1212 inner_viewport_scroll_layer != outer_viewport_scroll_layer); | 1216 inner_viewport_scroll_layer != outer_viewport_scroll_layer); |
1213 overscroll_elasticity_layer_ = overscroll_elasticity_layer; | 1217 overscroll_elasticity_layer_ = overscroll_elasticity_layer; |
1214 page_scale_layer_ = page_scale_layer; | 1218 page_scale_layer_ = page_scale_layer; |
1215 inner_viewport_scroll_layer_ = inner_viewport_scroll_layer; | 1219 inner_viewport_scroll_layer_ = inner_viewport_scroll_layer; |
1216 outer_viewport_scroll_layer_ = outer_viewport_scroll_layer; | 1220 outer_viewport_scroll_layer_ = outer_viewport_scroll_layer; |
1217 } | 1221 } |
1218 | 1222 |
| 1223 void LayerTreeHost::SetRootScrollerLayer( |
| 1224 scoped_refptr<Layer> root_scroller_layer) { |
| 1225 root_scroller_layer_ = root_scroller_layer; |
| 1226 } |
| 1227 |
1219 void LayerTreeHost::RegisterSelection(const LayerSelection& selection) { | 1228 void LayerTreeHost::RegisterSelection(const LayerSelection& selection) { |
1220 if (selection_ == selection) | 1229 if (selection_ == selection) |
1221 return; | 1230 return; |
1222 | 1231 |
1223 selection_ = selection; | 1232 selection_ = selection; |
1224 SetNeedsCommit(); | 1233 SetNeedsCommit(); |
1225 } | 1234 } |
1226 | 1235 |
1227 void LayerTreeHost::SetHaveScrollEventHandlers(bool have_event_handlers) { | 1236 void LayerTreeHost::SetHaveScrollEventHandlers(bool have_event_handlers) { |
1228 if (have_scroll_event_handlers_ == have_event_handlers) | 1237 if (have_scroll_event_handlers_ == have_event_handlers) |
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1728 int seq_num = property_trees_.sequence_number; | 1737 int seq_num = property_trees_.sequence_number; |
1729 LayerTreeHostCommon::CallFunctionForEveryLayer(this, [seq_num](Layer* layer) { | 1738 LayerTreeHostCommon::CallFunctionForEveryLayer(this, [seq_num](Layer* layer) { |
1730 layer->set_property_tree_sequence_number(seq_num); | 1739 layer->set_property_tree_sequence_number(seq_num); |
1731 }); | 1740 }); |
1732 | 1741 |
1733 surface_id_namespace_ = proto.surface_id_namespace(); | 1742 surface_id_namespace_ = proto.surface_id_namespace(); |
1734 next_surface_sequence_ = proto.next_surface_sequence(); | 1743 next_surface_sequence_ = proto.next_surface_sequence(); |
1735 } | 1744 } |
1736 | 1745 |
1737 } // namespace cc | 1746 } // namespace cc |
OLD | NEW |