Index: Source/core/paint/DeprecatedPaintLayer.cpp |
diff --git a/Source/core/paint/DeprecatedPaintLayer.cpp b/Source/core/paint/DeprecatedPaintLayer.cpp |
index e1d9bc4864943ad3ccecd6146362164b0a87b738..3299457efa2bc5f3bb2e655ad6d3cf504f228474 100644 |
--- a/Source/core/paint/DeprecatedPaintLayer.cpp |
+++ b/Source/core/paint/DeprecatedPaintLayer.cpp |
@@ -522,16 +522,21 @@ void DeprecatedPaintLayer::updatePagination() |
if (m_stackingNode->isNormalFlowOnly()) { |
if (usesRegionBasedColumns) { |
- // Content inside a transform is not considered to be paginated, since we simply |
- // paint the transform multiple times in each column, so we don't have to use |
- // fragments for the transformed content. |
- m_enclosingPaginationLayer = parent()->enclosingPaginationLayer(); |
- if (m_enclosingPaginationLayer && m_enclosingPaginationLayer->hasTransformRelatedProperty()) |
- m_enclosingPaginationLayer = 0; |
+ // We cannot take the fast path for spanners, as they do not have their nearest ancestor |
+ // pagination layer (flow thread) in their containing block chain. |
+ if (!layoutObject()->isColumnSpanAll()) { |
+ // Content inside a transform is not considered to be paginated, since we simply |
+ // paint the transform multiple times in each column, so we don't have to use |
+ // fragments for the transformed content. |
+ m_enclosingPaginationLayer = parent()->enclosingPaginationLayer(); |
+ if (m_enclosingPaginationLayer && m_enclosingPaginationLayer->hasTransformRelatedProperty()) |
+ m_enclosingPaginationLayer = 0; |
+ return; |
+ } |
} else { |
m_isPaginated = parent()->layoutObject()->hasColumns(); |
+ return; |
} |
- return; |
} |
// For the new columns code, we want to walk up our containing block chain looking for an enclosing layer. Once |