Index: cc/trees/property_tree.cc |
diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc |
index 95e436627330de3b531c7da2b317ad5b51d3f373..8e8ef50cfedcc200c6c53c75a900ee31ae90d548 100644 |
--- a/cc/trees/property_tree.cc |
+++ b/cc/trees/property_tree.cc |
@@ -43,7 +43,8 @@ TransformNodeData::TransformNodeData() |
ancestors_are_invertible(true), |
is_animated(false), |
to_screen_is_animated(false), |
- flattens(false), |
+ flattens_inherited_transform(false), |
+ flattens_local_transform(false), |
scrolls(false), |
needs_sublayer_scale(false), |
layer_scale_factor(1.0f) { |
@@ -190,7 +191,8 @@ void TransformTree::UpdateScreenSpaceTransform(TransformNode* node, |
node->data.to_screen = node->data.to_parent; |
node->data.ancestors_are_invertible = true; |
node->data.to_screen_is_animated = false; |
- } else if (parent_node->data.flattens) { |
+ } else if (parent_node->data.flattens_local_transform || |
+ node->data.flattens_inherited_transform) { |
// Flattening is tricky. Once a layer is drawn into its render target, it |
// cannot escape, so we only need to consider transforms between the layer |
// and its target when flattening (i.e., its draw transform). To compute the |