Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1397)

Unified Diff: Source/core/layout/PaintInvalidationState.cpp

Issue 1209133002: Traverse into child LayoutViews during invalidateTreeIfNeeded (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: public invalidateTreeIfNeeded Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/layout/PaintInvalidationState.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/layout/PaintInvalidationState.cpp
diff --git a/Source/core/layout/PaintInvalidationState.cpp b/Source/core/layout/PaintInvalidationState.cpp
index e7d62cf67a432bbce509508e0a55095793e5f84f..d33562a4d4f8c67a69c56c0075e7eb1ea87ecb68 100644
--- a/Source/core/layout/PaintInvalidationState.cpp
+++ b/Source/core/layout/PaintInvalidationState.cpp
@@ -13,7 +13,7 @@
namespace blink {
-PaintInvalidationState::PaintInvalidationState(const LayoutView& layoutView, Vector<LayoutObject*>& pendingDelayedPaintInvalidations)
+PaintInvalidationState::PaintInvalidationState(const LayoutView& layoutView, Vector<LayoutObject*>& pendingDelayedPaintInvalidations, PaintInvalidationState* ownerPaintInvalidationState)
: m_clipped(false)
, m_cachedOffsetsEnabled(true)
, m_forceCheckForPaintInvalidation(false)
@@ -22,10 +22,13 @@ PaintInvalidationState::PaintInvalidationState(const LayoutView& layoutView, Vec
{
bool establishesPaintInvalidationContainer = layoutView == m_paintInvalidationContainer;
if (!establishesPaintInvalidationContainer) {
- if (!layoutView.supportsPaintInvalidationStateCachedOffsets()) {
+ if ((ownerPaintInvalidationState && !ownerPaintInvalidationState->m_cachedOffsetsEnabled)
+ || !layoutView.supportsPaintInvalidationStateCachedOffsets()) {
m_cachedOffsetsEnabled = false;
return;
}
+ if (ownerPaintInvalidationState && ownerPaintInvalidationState->m_forceCheckForPaintInvalidation)
+ m_forceCheckForPaintInvalidation = true;
FloatPoint point = layoutView.localToContainerPoint(FloatPoint(), &m_paintInvalidationContainer, TraverseDocumentBoundaries);
m_paintOffset = LayoutSize(point.x(), point.y());
}
« no previous file with comments | « Source/core/layout/PaintInvalidationState.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698