Bug 1325849 - Return LAYER_ACTIVE if AGR of a child change.
MozReview-Commit-ID: 4tsG66oOAzf
--- a/layout/painting/nsDisplayList.cpp
+++ b/layout/painting/nsDisplayList.cpp
@@ -4576,17 +4576,17 @@ RequiredLayerStateForChildren(nsDisplayL
LayerManager* aManager,
const ContainerLayerParameters& aParameters,
const nsDisplayList& aList,
AnimatedGeometryRoot* aExpectedAnimatedGeometryRootForChildren,
LayerState aDefaultState = LAYER_INACTIVE)
{
LayerState result = aDefaultState;
for (nsDisplayItem* i = aList.GetBottom(); i; i = i->GetAbove()) {
- if (result == LAYER_INACTIVE &&
+ if ((result == LAYER_INACTIVE || result == LAYER_SVG_EFFECTS) &&
i->GetAnimatedGeometryRoot() != aExpectedAnimatedGeometryRootForChildren) {
result = LAYER_ACTIVE;
}
LayerState state = i->GetLayerState(aBuilder, aManager, aParameters);
if (state == LAYER_ACTIVE && i->GetType() == nsDisplayItem::TYPE_BLEND_MODE) {
// nsDisplayBlendMode always returns LAYER_ACTIVE to ensure that the
// blending operation happens in the intermediate surface of its parent