Index: Source/core/layout/LayoutBoxModelObject.cpp |
diff --git a/Source/core/layout/LayoutBoxModelObject.cpp b/Source/core/layout/LayoutBoxModelObject.cpp |
index 41eeace03327b015fa587ec3a370f7146d8f7768..94237cbc2d3a8d254c43fd24f0912f4a4721b09c 100644 |
--- a/Source/core/layout/LayoutBoxModelObject.cpp |
+++ b/Source/core/layout/LayoutBoxModelObject.cpp |
@@ -178,6 +178,7 @@ void LayoutBoxModelObject::styleDidChange(StyleDifference diff, const ComputedSt |
} |
} |
} else if (layer() && layer()->parent()) { |
+ DeprecatedPaintLayer* parentLayer = layer()->parent(); |
setHasTransformRelatedProperty(false); // Either a transform wasn't specified or the object doesn't support transforms, so just null out the bit. |
setHasReflection(false); |
layer()->removeOnlyThisLayer(); // calls destroyLayer() which clears m_layer |
@@ -185,6 +186,10 @@ void LayoutBoxModelObject::styleDidChange(StyleDifference diff, const ComputedSt |
setChildNeedsLayout(); |
if (hadTransform) |
setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInvalidationReason::StyleChange); |
+ if (!needsLayout()) { |
+ // FIXME: We should call a specialized version of this function. |
+ parentLayer->updateLayerPositionsAfterLayout(); |
+ } |
} |
if (layer()) { |