Index: Source/core/layout/PaintInvalidationState.cpp |
diff --git a/Source/core/layout/PaintInvalidationState.cpp b/Source/core/layout/PaintInvalidationState.cpp |
index 753e81fdc8a18030eafb30e7359c408144417704..fa114a411d4221720d87eb2abe90938fe693ce9e 100644 |
--- a/Source/core/layout/PaintInvalidationState.cpp |
+++ b/Source/core/layout/PaintInvalidationState.cpp |
@@ -16,7 +16,7 @@ namespace blink { |
PaintInvalidationState::PaintInvalidationState(const LayoutView& layoutView, Vector<LayoutObject*>& pendingDelayedPaintInvalidations, PaintInvalidationState* ownerPaintInvalidationState) |
: m_clipped(false) |
, m_cachedOffsetsEnabled(true) |
- , m_ancestorHadPaintInvalidationForLocationChange(false) |
+ , m_forcedSubtreeInvalidationWithinContainer(false) |
, m_paintInvalidationContainer(*layoutView.containerForPaintInvalidation()) |
, m_pendingDelayedPaintInvalidations(pendingDelayedPaintInvalidations) |
{ |
@@ -27,8 +27,8 @@ PaintInvalidationState::PaintInvalidationState(const LayoutView& layoutView, Vec |
m_cachedOffsetsEnabled = false; |
return; |
} |
- if (ownerPaintInvalidationState && ownerPaintInvalidationState->m_ancestorHadPaintInvalidationForLocationChange) |
- m_ancestorHadPaintInvalidationForLocationChange = true; |
+ if (ownerPaintInvalidationState && ownerPaintInvalidationState->m_forcedSubtreeInvalidationWithinContainer) |
+ m_forcedSubtreeInvalidationWithinContainer = true; |
FloatPoint point = layoutView.localToContainerPoint(FloatPoint(), &m_paintInvalidationContainer, TraverseDocumentBoundaries); |
m_paintOffset = LayoutSize(point.x(), point.y()); |
} |
@@ -40,7 +40,7 @@ PaintInvalidationState::PaintInvalidationState(const LayoutView& layoutView, Vec |
PaintInvalidationState::PaintInvalidationState(PaintInvalidationState& next, LayoutBoxModelObject& layoutObject, const LayoutBoxModelObject& paintInvalidationContainer) |
: m_clipped(false) |
, m_cachedOffsetsEnabled(true) |
- , m_ancestorHadPaintInvalidationForLocationChange(next.m_ancestorHadPaintInvalidationForLocationChange) |
+ , m_forcedSubtreeInvalidationWithinContainer(next.m_forcedSubtreeInvalidationWithinContainer) |
, m_paintInvalidationContainer(paintInvalidationContainer) |
, m_pendingDelayedPaintInvalidations(next.pendingDelayedPaintInvalidationTargets()) |
{ |
@@ -52,9 +52,10 @@ PaintInvalidationState::PaintInvalidationState(PaintInvalidationState& next, Lay |
m_cachedOffsetsEnabled = false; |
if (establishesPaintInvalidationContainer) { |
// When we hit a new paint invalidation container, we don't need to |
- // continue forcing a check for paint invalidation because movement |
- // from our parents will just move the whole invalidation container. |
- m_ancestorHadPaintInvalidationForLocationChange = false; |
+ // continue forcing a check for paint invalidation, since we're |
+ // descending into a different invalidation container. (For instance if |
+ // our parents were moved, the entire container will just move.) |
+ m_forcedSubtreeInvalidationWithinContainer = false; |
} else { |
if (m_cachedOffsetsEnabled) { |
if (fixed) { |
@@ -96,7 +97,7 @@ PaintInvalidationState::PaintInvalidationState(PaintInvalidationState& next, Lay |
PaintInvalidationState::PaintInvalidationState(PaintInvalidationState& next, const LayoutSVGModelObject& layoutObject) |
: m_clipped(next.m_clipped) |
, m_cachedOffsetsEnabled(next.m_cachedOffsetsEnabled) |
- , m_ancestorHadPaintInvalidationForLocationChange(next.m_ancestorHadPaintInvalidationForLocationChange) |
+ , m_forcedSubtreeInvalidationWithinContainer(next.m_forcedSubtreeInvalidationWithinContainer) |
, m_clipRect(next.m_clipRect) |
, m_paintOffset(next.m_paintOffset) |
, m_paintInvalidationContainer(next.m_paintInvalidationContainer) |