| Index: Source/core/rendering/RenderBlockFlow.cpp
|
| diff --git a/Source/core/rendering/RenderBlockFlow.cpp b/Source/core/rendering/RenderBlockFlow.cpp
|
| index 92c33e71223bf444d65909ffed08b5068e73a457..df4eb4890dd809149065a29b96bf5c1a9cf5b5d1 100644
|
| --- a/Source/core/rendering/RenderBlockFlow.cpp
|
| +++ b/Source/core/rendering/RenderBlockFlow.cpp
|
| @@ -369,8 +369,16 @@ void RenderBlockFlow::layoutBlock(bool relayoutChildren)
|
| // we overflow or not.
|
| updateScrollInfoAfterLayout();
|
|
|
| - if (m_repaintLogicalTop != m_repaintLogicalBottom && (style()->visibility() == VISIBLE || enclosingLayer()->hasVisibleContent()))
|
| - setShouldInvalidateOverflowForPaint(true);
|
| + if (m_repaintLogicalTop != m_repaintLogicalBottom) {
|
| + bool hasVisibleContent = style()->visibility() == VISIBLE;
|
| + if (!hasVisibleContent) {
|
| + RenderLayer* layer = enclosingLayer();
|
| + layer->updateDescendantDependentFlags();
|
| + hasVisibleContent = layer->hasVisibleContent();
|
| + }
|
| + if (hasVisibleContent)
|
| + setShouldInvalidateOverflowForPaint(true);
|
| + }
|
|
|
| clearNeedsLayout();
|
| }
|
|
|