Index: Source/core/rendering/RenderLayerModelObject.cpp |
diff --git a/Source/core/rendering/RenderLayerModelObject.cpp b/Source/core/rendering/RenderLayerModelObject.cpp |
index e340de3fd4ebb33283c95641b5379b1fb386d4aa..947731dcd94047c9164f167cafa75e8f20f95f73 100644 |
--- a/Source/core/rendering/RenderLayerModelObject.cpp |
+++ b/Source/core/rendering/RenderLayerModelObject.cpp |
@@ -104,6 +104,8 @@ void RenderLayerModelObject::styleWillChange(StyleDifference diff, const RenderS |
void RenderLayerModelObject::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle) |
{ |
bool hadTransform = hasTransform(); |
+ bool hadLayer = hasLayer(); |
+ bool layerWasSelfPainting = hadLayer && layer()->isSelfPaintingLayer(); |
RenderObject::styleDidChange(diff, oldStyle); |
updateFromStyle(); |
@@ -136,7 +138,10 @@ void RenderLayerModelObject::styleDidChange(StyleDifference diff, const RenderSt |
// FIXME: Ideally we shouldn't need this setter but we can't easily infer an overflow-only layer |
// from the style. |
layer()->setLayerType(type); |
+ |
layer()->styleChanged(diff, oldStyle); |
+ if (hadLayer && layer()->isSelfPaintingLayer() != layerWasSelfPainting) |
+ setChildNeedsLayout(); |
} |
if (FrameView *frameView = view()->frameView()) { |