| Index: Source/core/rendering/RenderLayerModelObject.cpp
|
| diff --git a/Source/core/rendering/RenderLayerModelObject.cpp b/Source/core/rendering/RenderLayerModelObject.cpp
|
| index d7c2716406ef2f4289bb96af63460b70cc2f968e..3f5acdee95a0cb6c9cddfe002dfedd498196f7f1 100644
|
| --- a/Source/core/rendering/RenderLayerModelObject.cpp
|
| +++ b/Source/core/rendering/RenderLayerModelObject.cpp
|
| @@ -101,6 +101,15 @@ void RenderLayerModelObject::styleWillChange(StyleDifference diff, const RenderS
|
| if (oldStyle->hasClip() != newStyle.hasClip()
|
| || oldStyle->clip() != newStyle.clip())
|
| layer()->clipper().clearClipRectsIncludingDescendants();
|
| + } else if (diff.needsFullLayout()) {
|
| + if (hasLayer()) {
|
| + if (!layer()->hasCompositedLayerMapping() && oldStyle->position() != newStyle.position())
|
| + layer()->repainter().repaintIncludingNonCompositingDescendants();
|
| + } else if (newStyle.hasTransform() || newStyle.opacity() < 1 || newStyle.hasFilter()) {
|
| + // If we don't have a layer yet, but we are going to get one because of transform or opacity,
|
| + // then we need to repaint the old position of the object.
|
| + paintInvalidationForWholeRenderer();
|
| + }
|
| }
|
| }
|
|
|
|
|