| 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;
|
| }
|
|
|
|
|