Index: cc/trees/property_tree_builder.cc |
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc |
index 28ad43f309111ac26e9eb433bc3e5acaf11f6500..8ad44070ec7ffdf6d648c6356e6673153b9366d3 100644 |
--- a/cc/trees/property_tree_builder.cc |
+++ b/cc/trees/property_tree_builder.cc |
@@ -100,7 +100,8 @@ void AddClipNodeIfNeeded(const DataForRecursion<LayerType>& data_from_ancestor, |
int parent_id = parent->id; |
bool ancestor_clips_subtree = |
- data_from_ancestor.ancestor_clips_subtree || layer->clip_parent(); |
+ data_from_ancestor.ancestor_clips_subtree || |
+ (layer->clip_parent() && layer->clip_parent()->is_clipped()); |
data_for_children->ancestor_clips_subtree = false; |
bool has_unclipped_surface = false; |
@@ -145,6 +146,8 @@ void AddClipNodeIfNeeded(const DataForRecursion<LayerType>& data_from_ancestor, |
layer->SetClipTreeIndex( |
has_unclipped_surface ? 0 : data_for_children->clip_tree_parent); |
+ layer->set_is_clipped(data_for_children->ancestor_clips_subtree); |
+ |
// TODO(awoloszyn): Right now when we hit a node with a replica, we reset the |
// clip for all children since we may need to draw. We need to figure out a |
// better way, since we will need both the clipped and unclipped versions. |