Index: Source/core/rendering/RenderBlock.cpp |
diff --git a/Source/core/rendering/RenderBlock.cpp b/Source/core/rendering/RenderBlock.cpp |
index b969ed81dab7591e3d6b44b3466b3cfd82695fef..9283253c88516d3b3148890d504b9580f8a9e3f4 100644 |
--- a/Source/core/rendering/RenderBlock.cpp |
+++ b/Source/core/rendering/RenderBlock.cpp |
@@ -2943,7 +2943,7 @@ void RenderBlock::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset) |
LayoutPoint adjustedPaintOffset = paintOffset + location(); |
- PaintPhase phase = paintInfo.phase; |
+ PaintPhase phase = paintInfo.getPhase(); |
// Check if we need to do anything at all. |
// FIXME: Could eliminate the isRoot() check if we fix background painting so that the RenderView |
@@ -2951,9 +2951,9 @@ void RenderBlock::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset) |
if (!isRoot()) { |
LayoutRect overflowBox = overflowRectForPaintRejection(); |
flipForWritingMode(overflowBox); |
- overflowBox.inflate(maximalOutlineSize(paintInfo.phase)); |
+ overflowBox.inflate(maximalOutlineSize(paintInfo.getPhase())); |
overflowBox.moveBy(adjustedPaintOffset); |
- if (!overflowBox.intersects(paintInfo.rect)) |
+ if (!overflowBox.intersects(paintInfo.getRect())) |
return; |
} |
@@ -2966,12 +2966,12 @@ void RenderBlock::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset) |
// z-index. We paint after we painted the background/border, so that the scrollbars will |
// sit above the background/border. |
if (hasOverflowClip() && style()->visibility() == VISIBLE && (phase == PaintPhaseBlockBackground || phase == PaintPhaseChildBlockBackground) && paintInfo.shouldPaintWithinRoot(this) && !paintInfo.paintRootBackgroundOnly()) |
- layer()->paintOverflowControls(paintInfo.context, roundedIntPoint(adjustedPaintOffset), paintInfo.rect); |
+ layer()->paintOverflowControls(paintInfo.getContext(), roundedIntPoint(adjustedPaintOffset), paintInfo.getRect()); |
} |
void RenderBlock::paintColumnRules(PaintInfo& paintInfo, const LayoutPoint& paintOffset) |
{ |
- if (paintInfo.context->paintingDisabled()) |
+ if (paintInfo.getContext()->paintingDisabled()) |
return; |
const Color& ruleColor = resolveColor(CSSPropertyWebkitColumnRuleColor); |
@@ -2986,7 +2986,7 @@ void RenderBlock::paintColumnRules(PaintInfo& paintInfo, const LayoutPoint& pain |
ColumnInfo* colInfo = columnInfo(); |
unsigned colCount = columnCount(colInfo); |
- bool antialias = shouldAntialiasLines(paintInfo.context); |
+ bool antialias = shouldAntialiasLines(paintInfo.getContext()); |
if (colInfo->progressionAxis() == ColumnInfo::InlineAxis) { |
bool leftToRight = style()->isLeftToRightDirection() ^ colInfo->progressionIsReversed(); |
@@ -3015,7 +3015,7 @@ void RenderBlock::paintColumnRules(PaintInfo& paintInfo, const LayoutPoint& pain |
LayoutUnit ruleTop = isHorizontalWritingMode() ? paintOffset.y() + borderTop() + paddingTop() : paintOffset.y() + ruleLogicalLeft - ruleThickness / 2 + ruleAdd; |
LayoutUnit ruleBottom = isHorizontalWritingMode() ? ruleTop + contentHeight() : ruleTop + ruleThickness; |
IntRect pixelSnappedRuleRect = pixelSnappedIntRectFromEdges(ruleLeft, ruleTop, ruleRight, ruleBottom); |
- drawLineForBoxSide(paintInfo.context, pixelSnappedRuleRect.x(), pixelSnappedRuleRect.y(), pixelSnappedRuleRect.maxX(), pixelSnappedRuleRect.maxY(), boxSide, ruleColor, ruleStyle, 0, 0, antialias); |
+ drawLineForBoxSide(paintInfo.getContext(), pixelSnappedRuleRect.x(), pixelSnappedRuleRect.y(), pixelSnappedRuleRect.maxX(), pixelSnappedRuleRect.maxY(), boxSide, ruleColor, ruleStyle, 0, 0, antialias); |
} |
ruleLogicalLeft = currLogicalLeftOffset; |
@@ -3052,7 +3052,7 @@ void RenderBlock::paintColumnRules(PaintInfo& paintInfo, const LayoutPoint& pain |
for (unsigned i = 1; i < colCount; i++) { |
ruleRect.move(step); |
IntRect pixelSnappedRuleRect = pixelSnappedIntRect(ruleRect); |
- drawLineForBoxSide(paintInfo.context, pixelSnappedRuleRect.x(), pixelSnappedRuleRect.y(), pixelSnappedRuleRect.maxX(), pixelSnappedRuleRect.maxY(), boxSide, ruleColor, ruleStyle, 0, 0, antialias); |
+ drawLineForBoxSide(paintInfo.getContext(), pixelSnappedRuleRect.x(), pixelSnappedRuleRect.y(), pixelSnappedRuleRect.maxX(), pixelSnappedRuleRect.maxY(), boxSide, ruleColor, ruleStyle, 0, 0, antialias); |
} |
} |
} |
@@ -3060,7 +3060,7 @@ void RenderBlock::paintColumnRules(PaintInfo& paintInfo, const LayoutPoint& pain |
void RenderBlock::paintColumnContents(PaintInfo& paintInfo, const LayoutPoint& paintOffset, bool paintingFloats) |
{ |
// We need to do multiple passes, breaking up our child painting into strips. |
- GraphicsContext* context = paintInfo.context; |
+ GraphicsContext* context = paintInfo.getContext(); |
ColumnInfo* colInfo = columnInfo(); |
unsigned colCount = columnCount(colInfo); |
if (!colCount) |
@@ -3081,9 +3081,9 @@ void RenderBlock::paintColumnContents(PaintInfo& paintInfo, const LayoutPoint& p |
} |
colRect.moveBy(paintOffset); |
PaintInfo info(paintInfo); |
- info.rect.intersect(pixelSnappedIntRect(colRect)); |
+ info.getRect().intersect(pixelSnappedIntRect(colRect)); |
- if (!info.rect.isEmpty()) { |
+ if (!info.getRect().isEmpty()) { |
GraphicsContextStateSaver stateSaver(*context); |
LayoutRect clipRect(colRect); |
@@ -3102,7 +3102,7 @@ void RenderBlock::paintColumnContents(PaintInfo& paintInfo, const LayoutPoint& p |
// Adjust our x and y when painting. |
LayoutPoint adjustedPaintOffset = paintOffset + offset; |
if (paintingFloats) |
- paintFloats(info, adjustedPaintOffset, paintInfo.phase == PaintPhaseSelection || paintInfo.phase == PaintPhaseTextClip); |
+ paintFloats(info, adjustedPaintOffset, paintInfo.getPhase() == PaintPhaseSelection || paintInfo.getPhase() == PaintPhaseTextClip); |
else |
paintContents(info, adjustedPaintOffset); |
} |
@@ -3126,12 +3126,12 @@ void RenderBlock::paintContents(PaintInfo& paintInfo, const LayoutPoint& paintOf |
if (childrenInline()) |
m_lineBoxes.paint(this, paintInfo, paintOffset); |
else { |
- PaintPhase newPhase = (paintInfo.phase == PaintPhaseChildOutlines) ? PaintPhaseOutline : paintInfo.phase; |
+ PaintPhase newPhase = (paintInfo.getPhase() == PaintPhaseChildOutlines) ? PaintPhaseOutline : paintInfo.getPhase(); |
newPhase = (newPhase == PaintPhaseChildBlockBackgrounds) ? PaintPhaseChildBlockBackground : newPhase; |
// We don't paint our own background, but we do let the kids paint their backgrounds. |
PaintInfo paintInfoForChild(paintInfo); |
- paintInfoForChild.phase = newPhase; |
+ paintInfoForChild.setPhase(newPhase); |
paintInfoForChild.updatePaintingRootForChildren(this); |
paintChildren(paintInfoForChild, paintOffset); |
} |
@@ -3167,15 +3167,15 @@ void RenderBlock::paintCaret(PaintInfo& paintInfo, const LayoutPoint& paintOffse |
if (caretPainter == this && (isContentEditable || caretBrowsing)) { |
if (type == CursorCaret) |
- frame()->selection()->paintCaret(paintInfo.context, paintOffset, paintInfo.rect); |
+ frame()->selection()->paintCaret(paintInfo.getContext(), paintOffset, paintInfo.getRect()); |
else |
- frame()->page()->dragCaretController()->paintDragCaret(frame(), paintInfo.context, paintOffset, paintInfo.rect); |
+ frame()->page()->dragCaretController()->paintDragCaret(frame(), paintInfo.getContext(), paintOffset, paintInfo.getRect()); |
} |
} |
void RenderBlock::paintObject(PaintInfo& paintInfo, const LayoutPoint& paintOffset) |
{ |
- PaintPhase paintPhase = paintInfo.phase; |
+ PaintPhase paintPhase = paintInfo.getPhase(); |
// 1. paint background, borders etc |
if ((paintPhase == PaintPhaseBlockBackground || paintPhase == PaintPhaseChildBlockBackground) && style()->visibility() == VISIBLE) { |
@@ -3286,17 +3286,18 @@ void RenderBlock::paintFloats(PaintInfo& paintInfo, const LayoutPoint& paintOffs |
// Only paint the object if our m_shouldPaint flag is set. |
if (r->shouldPaint() && !r->m_renderer->hasSelfPaintingLayer()) { |
PaintInfo currentPaintInfo(paintInfo); |
- currentPaintInfo.phase = preservePhase ? paintInfo.phase : PaintPhaseBlockBackground; |
+ PaintPhase phase = preservePhase ? paintInfo.getPhase() : PaintPhaseBlockBackground; |
+ currentPaintInfo.setPhase(phase); |
LayoutPoint childPoint = flipFloatForWritingModeForChild(r, LayoutPoint(paintOffset.x() + xPositionForFloatIncludingMargin(r) - r->m_renderer->x(), paintOffset.y() + yPositionForFloatIncludingMargin(r) - r->m_renderer->y())); |
r->m_renderer->paint(currentPaintInfo, childPoint); |
if (!preservePhase) { |
- currentPaintInfo.phase = PaintPhaseChildBlockBackgrounds; |
+ currentPaintInfo.setPhase(PaintPhaseChildBlockBackgrounds); |
r->m_renderer->paint(currentPaintInfo, childPoint); |
- currentPaintInfo.phase = PaintPhaseFloat; |
+ currentPaintInfo.setPhase(PaintPhaseFloat); |
r->m_renderer->paint(currentPaintInfo, childPoint); |
- currentPaintInfo.phase = PaintPhaseForeground; |
+ currentPaintInfo.setPhase(PaintPhaseForeground); |
r->m_renderer->paint(currentPaintInfo, childPoint); |
- currentPaintInfo.phase = PaintPhaseOutline; |
+ currentPaintInfo.setPhase(PaintPhaseOutline); |
r->m_renderer->paint(currentPaintInfo, childPoint); |
} |
} |
@@ -3433,11 +3434,11 @@ GapRects RenderBlock::selectionGapRectsForRepaint(const RenderLayerModelObject* |
void RenderBlock::paintSelection(PaintInfo& paintInfo, const LayoutPoint& paintOffset) |
{ |
- if (shouldPaintSelectionGaps() && paintInfo.phase == PaintPhaseForeground) { |
+ if (shouldPaintSelectionGaps() && paintInfo.getPhase() == PaintPhaseForeground) { |
LayoutUnit lastTop = 0; |
LayoutUnit lastLeft = logicalLeftSelectionOffset(this, lastTop); |
LayoutUnit lastRight = logicalRightSelectionOffset(this, lastTop); |
- GraphicsContextStateSaver stateSaver(*paintInfo.context); |
+ GraphicsContextStateSaver stateSaver(*paintInfo.getContext()); |
LayoutRect gapRectsBounds = selectionGaps(this, paintOffset, LayoutSize(), lastTop, lastLeft, lastRight, &paintInfo); |
if (!gapRectsBounds.isEmpty()) { |
@@ -3456,7 +3457,7 @@ void RenderBlock::paintSelection(PaintInfo& paintInfo, const LayoutPoint& paintO |
} |
} |
-static void clipOutPositionedObjects(const PaintInfo* paintInfo, const LayoutPoint& offset, TrackedRendererListHashSet* positionedObjects) |
+static void clipOutPositionedObjects(PaintInfo* paintInfo, const LayoutPoint& offset, TrackedRendererListHashSet* positionedObjects) |
{ |
if (!positionedObjects) |
return; |
@@ -3464,7 +3465,7 @@ static void clipOutPositionedObjects(const PaintInfo* paintInfo, const LayoutPoi |
TrackedRendererListHashSet::const_iterator end = positionedObjects->end(); |
for (TrackedRendererListHashSet::const_iterator it = positionedObjects->begin(); it != end; ++it) { |
RenderBox* r = *it; |
- paintInfo->context->clipOut(IntRect(offset.x() + r->x(), offset.y() + r->y(), r->width(), r->height())); |
+ paintInfo->getContext()->clipOut(IntRect(offset.x() + r->x(), offset.y() + r->y(), r->width(), r->height())); |
} |
} |
@@ -3491,7 +3492,7 @@ LayoutRect RenderBlock::logicalRectToPhysicalRect(const LayoutPoint& rootBlockPh |
} |
GapRects RenderBlock::selectionGaps(RenderBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, |
- LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& lastLogicalRight, const PaintInfo* paintInfo) |
+ LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& lastLogicalRight, PaintInfo* paintInfo) |
{ |
// IMPORTANT: Callers of this method that intend for painting to happen need to do a save/restore. |
// Clip out floating and positioned objects when painting selection gaps. |
@@ -3514,7 +3515,7 @@ GapRects RenderBlock::selectionGaps(RenderBlock* rootBlock, const LayoutPoint& r |
r->m_renderer->width(), r->m_renderer->height()); |
rootBlock->flipForWritingMode(floatBox); |
floatBox.move(rootBlockPhysicalPosition.x(), rootBlockPhysicalPosition.y()); |
- paintInfo->context->clipOut(pixelSnappedIntRect(floatBox)); |
+ paintInfo->getContext()->clipOut(pixelSnappedIntRect(floatBox)); |
} |
} |
} |
@@ -3546,7 +3547,7 @@ GapRects RenderBlock::selectionGaps(RenderBlock* rootBlock, const LayoutPoint& r |
} |
GapRects RenderBlock::inlineSelectionGaps(RenderBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, |
- LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& lastLogicalRight, const PaintInfo* paintInfo) |
+ LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& lastLogicalRight, PaintInfo* paintInfo) |
{ |
GapRects result; |
@@ -3580,8 +3581,8 @@ GapRects RenderBlock::inlineSelectionGaps(RenderBlock* rootBlock, const LayoutPo |
LayoutRect logicalRect(curr->logicalLeft(), selTop, curr->logicalWidth(), selTop + selHeight); |
logicalRect.move(isHorizontalWritingMode() ? offsetFromRootBlock : offsetFromRootBlock.transposedSize()); |
LayoutRect physicalRect = rootBlock->logicalRectToPhysicalRect(rootBlockPhysicalPosition, logicalRect); |
- if (!paintInfo || (isHorizontalWritingMode() && physicalRect.y() < paintInfo->rect.maxY() && physicalRect.maxY() > paintInfo->rect.y()) |
- || (!isHorizontalWritingMode() && physicalRect.x() < paintInfo->rect.maxX() && physicalRect.maxX() > paintInfo->rect.x())) |
+ if (!paintInfo || (isHorizontalWritingMode() && physicalRect.y() < paintInfo->getRect().maxY() && physicalRect.maxY() > paintInfo->getRect().y()) |
+ || (!isHorizontalWritingMode() && physicalRect.x() < paintInfo->getRect().maxX() && physicalRect.maxX() > paintInfo->getRect().x())) |
result.unite(curr->lineSelectionGap(rootBlock, rootBlockPhysicalPosition, offsetFromRootBlock, selTop, selHeight, paintInfo)); |
lastSelectedLine = curr; |
@@ -3601,7 +3602,7 @@ GapRects RenderBlock::inlineSelectionGaps(RenderBlock* rootBlock, const LayoutPo |
} |
GapRects RenderBlock::blockSelectionGaps(RenderBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, |
- LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& lastLogicalRight, const PaintInfo* paintInfo) |
+ LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& lastLogicalRight, PaintInfo* paintInfo) |
{ |
GapRects result; |
@@ -3663,7 +3664,7 @@ GapRects RenderBlock::blockSelectionGaps(RenderBlock* rootBlock, const LayoutPoi |
} |
LayoutRect RenderBlock::blockSelectionGap(RenderBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, |
- LayoutUnit lastLogicalTop, LayoutUnit lastLogicalLeft, LayoutUnit lastLogicalRight, LayoutUnit logicalBottom, const PaintInfo* paintInfo) |
+ LayoutUnit lastLogicalTop, LayoutUnit lastLogicalLeft, LayoutUnit lastLogicalRight, LayoutUnit logicalBottom, PaintInfo* paintInfo) |
{ |
LayoutUnit logicalTop = lastLogicalTop; |
LayoutUnit logicalHeight = blockDirectionOffset(rootBlock, offsetFromRootBlock) + logicalBottom - logicalTop; |
@@ -3679,12 +3680,12 @@ LayoutRect RenderBlock::blockSelectionGap(RenderBlock* rootBlock, const LayoutPo |
LayoutRect gapRect = rootBlock->logicalRectToPhysicalRect(rootBlockPhysicalPosition, LayoutRect(logicalLeft, logicalTop, logicalWidth, logicalHeight)); |
if (paintInfo) |
- paintInfo->context->fillRect(pixelSnappedIntRect(gapRect), selectionBackgroundColor()); |
+ paintInfo->getContext()->fillRect(pixelSnappedIntRect(gapRect), selectionBackgroundColor()); |
return gapRect; |
} |
LayoutRect RenderBlock::logicalLeftSelectionGap(RenderBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, |
- RenderObject* selObj, LayoutUnit logicalLeft, LayoutUnit logicalTop, LayoutUnit logicalHeight, const PaintInfo* paintInfo) |
+ RenderObject* selObj, LayoutUnit logicalLeft, LayoutUnit logicalTop, LayoutUnit logicalHeight, PaintInfo* paintInfo) |
{ |
LayoutUnit rootBlockLogicalTop = blockDirectionOffset(rootBlock, offsetFromRootBlock) + logicalTop; |
LayoutUnit rootBlockLogicalLeft = max(logicalLeftSelectionOffset(rootBlock, logicalTop), logicalLeftSelectionOffset(rootBlock, logicalTop + logicalHeight)); |
@@ -3695,12 +3696,12 @@ LayoutRect RenderBlock::logicalLeftSelectionGap(RenderBlock* rootBlock, const La |
LayoutRect gapRect = rootBlock->logicalRectToPhysicalRect(rootBlockPhysicalPosition, LayoutRect(rootBlockLogicalLeft, rootBlockLogicalTop, rootBlockLogicalWidth, logicalHeight)); |
if (paintInfo) |
- paintInfo->context->fillRect(pixelSnappedIntRect(gapRect), selObj->selectionBackgroundColor()); |
+ paintInfo->getContext()->fillRect(pixelSnappedIntRect(gapRect), selObj->selectionBackgroundColor()); |
return gapRect; |
} |
LayoutRect RenderBlock::logicalRightSelectionGap(RenderBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, |
- RenderObject* selObj, LayoutUnit logicalRight, LayoutUnit logicalTop, LayoutUnit logicalHeight, const PaintInfo* paintInfo) |
+ RenderObject* selObj, LayoutUnit logicalRight, LayoutUnit logicalTop, LayoutUnit logicalHeight, PaintInfo* paintInfo) |
{ |
LayoutUnit rootBlockLogicalTop = blockDirectionOffset(rootBlock, offsetFromRootBlock) + logicalTop; |
LayoutUnit rootBlockLogicalLeft = max(inlineDirectionOffset(rootBlock, offsetFromRootBlock) + floorToInt(logicalRight), max(logicalLeftSelectionOffset(rootBlock, logicalTop), logicalLeftSelectionOffset(rootBlock, logicalTop + logicalHeight))); |
@@ -3711,7 +3712,7 @@ LayoutRect RenderBlock::logicalRightSelectionGap(RenderBlock* rootBlock, const L |
LayoutRect gapRect = rootBlock->logicalRectToPhysicalRect(rootBlockPhysicalPosition, LayoutRect(rootBlockLogicalLeft, rootBlockLogicalTop, rootBlockLogicalWidth, logicalHeight)); |
if (paintInfo) |
- paintInfo->context->fillRect(pixelSnappedIntRect(gapRect), selObj->selectionBackgroundColor()); |
+ paintInfo->getContext()->fillRect(pixelSnappedIntRect(gapRect), selObj->selectionBackgroundColor()); |
return gapRect; |
} |