Index: Source/core/rendering/RenderBox.cpp |
diff --git a/Source/core/rendering/RenderBox.cpp b/Source/core/rendering/RenderBox.cpp |
index 39befae260204bc7a2b5b40e9d6460cfa6e6109a..e2220e8b0e5e275cd1c6830a5f8959909f04fe5c 100644 |
--- a/Source/core/rendering/RenderBox.cpp |
+++ b/Source/core/rendering/RenderBox.cpp |
@@ -1260,9 +1260,12 @@ void RenderBox::imageChanged(WrappedImagePtr image, const IntRect*) |
} |
ShapeValue* shapeOutsideValue = style()->shapeOutside(); |
- if (!frameView()->isInPerformLayout() && isFloating() && shapeOutsideValue && shapeOutsideValue->image() && shapeOutsideValue->image()->data() == image) { |
- ShapeOutsideInfo::ensureInfo(*this).markShapeAsDirty(); |
- markShapeOutsideDependentsForLayout(); |
+ if (isFloating() && shapeOutsideValue && shapeOutsideValue->image() && shapeOutsideValue->image()->data() == image) { |
+ ShapeOutsideInfo& info = ShapeOutsideInfo::ensureInfo(*this); |
+ if (!info.isComputingShape()) { |
+ info.markShapeAsDirty(); |
+ markShapeOutsideDependentsForLayout(); |
+ } |
} |
if (!paintInvalidationLayerRectsForImage(image, style()->backgroundLayers(), true)) |