Index: Source/core/rendering/PaintInvalidationState.cpp |
diff --git a/Source/core/rendering/PaintInvalidationState.cpp b/Source/core/rendering/PaintInvalidationState.cpp |
index 36673f2699f8030dcb73dbe4ad51fb992fd7e40a..ec4af685b90037950c381f60dc09026791280faf 100644 |
--- a/Source/core/rendering/PaintInvalidationState.cpp |
+++ b/Source/core/rendering/PaintInvalidationState.cpp |
@@ -44,15 +44,15 @@ PaintInvalidationState::PaintInvalidationState(const PaintInvalidationState& nex |
bool establishesPaintInvalidationContainer = renderer == m_paintInvalidationContainer; |
bool fixed = renderer.style()->position() == FixedPosition; |
+ if (!renderer.supportsPaintInvalidationStateCachedOffsets() || !next.m_cachedOffsetsEnabled) |
+ 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_forceCheckForPaintInvalidation = false; |
} else { |
- if (!renderer.supportsPaintInvalidationStateCachedOffsets() || !next.m_cachedOffsetsEnabled) { |
- m_cachedOffsetsEnabled = false; |
- } else { |
+ if (m_cachedOffsetsEnabled) { |
if (fixed) { |
FloatPoint fixedOffset = renderer.localToContainerPoint(FloatPoint(), &m_paintInvalidationContainer, TraverseDocumentBoundaries); |
m_paintOffset = LayoutSize(fixedOffset.x(), fixedOffset.y()); |