| Index: cc/trees/property_tree.cc
|
| diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc
|
| index de0096bca4ef9a192051c29a941135273c593540..216467641cc649d90dcf64c066adeb5e88d8f8a9 100644
|
| --- a/cc/trees/property_tree.cc
|
| +++ b/cc/trees/property_tree.cc
|
| @@ -1892,6 +1892,20 @@ void PropertyTrees::SetInnerViewportScrollBoundsDelta(
|
| inner_viewport_scroll_bounds_delta_ = bounds_delta;
|
| }
|
|
|
| +void PropertyTrees::UpdateChangeTracking() {
|
| + for (int id = 1; id < static_cast<int>(effect_tree.size()); ++id) {
|
| + EffectNode* node = effect_tree.Node(id);
|
| + EffectNode* parent_node = effect_tree.parent(node);
|
| + effect_tree.UpdateEffectChanged(node, parent_node);
|
| + }
|
| + for (int i = 1; i < static_cast<int>(transform_tree.size()); ++i) {
|
| + TransformNode* node = transform_tree.Node(i);
|
| + TransformNode* parent_node = transform_tree.parent(node);
|
| + TransformNode* source_node = transform_tree.Node(node->data.source_node_id);
|
| + transform_tree.UpdateTransformChanged(node, parent_node, source_node);
|
| + }
|
| +}
|
| +
|
| void PropertyTrees::PushChangeTrackingTo(PropertyTrees* tree) {
|
| for (int id = 1; id < static_cast<int>(effect_tree.size()); ++id) {
|
| EffectNode* node = effect_tree.Node(id);
|
| @@ -1907,6 +1921,9 @@ void PropertyTrees::PushChangeTrackingTo(PropertyTrees* tree) {
|
| target_node->data.transform_changed = true;
|
| }
|
| }
|
| + // Ensure that change tracking is updated even if property trees don't have
|
| + // other reasons to get updated.
|
| + tree->UpdateChangeTracking();
|
| tree->full_tree_damaged = full_tree_damaged;
|
| }
|
|
|
|
|