Index: cc/trees/layer_tree_host_common.cc |
diff --git a/cc/trees/layer_tree_host_common.cc b/cc/trees/layer_tree_host_common.cc |
index 5e97f14437a1d00c8dcfc3789e157dd2ac17f545..0fdcefee8449b91f9b1cd3b06e92070cd4b67713 100644 |
--- a/cc/trees/layer_tree_host_common.cc |
+++ b/cc/trees/layer_tree_host_common.cc |
@@ -1128,6 +1128,7 @@ struct SubtreeGlobals { |
const LayerType* page_scale_application_layer; |
bool can_adjust_raster_scales; |
bool can_render_to_separate_surface; |
+ bool* has_fixed_to_bottom_edge_layer; |
}; |
template<typename LayerType> |
@@ -1426,6 +1427,11 @@ static void CalculateDrawPropertiesInternal( |
DCHECK(globals.page_scale_application_layer || |
(globals.page_scale_factor == 1.f)); |
+ if (globals.has_fixed_to_bottom_edge_layer) { |
+ *globals.has_fixed_to_bottom_edge_layer |= |
+ layer->position_constraint().is_fixed_to_bottom_edge(); |
+ } |
+ |
DataForRecursion<LayerType> data_for_children; |
typename LayerType::RenderSurfaceType* |
nearest_occlusion_immune_ancestor_surface = |
@@ -2153,6 +2159,10 @@ void LayerTreeHostCommon::CalculateDrawProperties( |
globals.can_render_to_separate_surface = |
inputs->can_render_to_separate_surface; |
globals.can_adjust_raster_scales = inputs->can_adjust_raster_scales; |
+ globals.has_fixed_to_bottom_edge_layer = |
+ inputs->has_fixed_to_bottom_edge_layer; |
+ if (globals.has_fixed_to_bottom_edge_layer) |
+ *globals.has_fixed_to_bottom_edge_layer = false; |
DataForRecursion<Layer> data_for_recursion; |
data_for_recursion.parent_matrix = scaled_device_transform; |
@@ -2211,6 +2221,10 @@ void LayerTreeHostCommon::CalculateDrawProperties( |
globals.can_render_to_separate_surface = |
inputs->can_render_to_separate_surface; |
globals.can_adjust_raster_scales = inputs->can_adjust_raster_scales; |
+ globals.has_fixed_to_bottom_edge_layer = |
+ inputs->has_fixed_to_bottom_edge_layer; |
+ if (globals.has_fixed_to_bottom_edge_layer) |
+ *globals.has_fixed_to_bottom_edge_layer = false; |
DataForRecursion<LayerImpl> data_for_recursion; |
data_for_recursion.parent_matrix = scaled_device_transform; |