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

Unified Diff: Source/core/rendering/RenderLineBoxList.cpp

Issue 585943004: Move painting code from RenderLineBoxList to LineBoxListPainter. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Merged. Created 6 years, 3 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/rendering/RenderLineBoxList.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderLineBoxList.cpp
diff --git a/Source/core/rendering/RenderLineBoxList.cpp b/Source/core/rendering/RenderLineBoxList.cpp
index 8595518327c307647e2e5e269fdb3aa4150df723..9c33536fbf800c0988ff22d6688d7b5fb220bf3b 100644
--- a/Source/core/rendering/RenderLineBoxList.cpp
+++ b/Source/core/rendering/RenderLineBoxList.cpp
@@ -192,47 +192,6 @@ bool RenderLineBoxList::lineIntersectsDirtyRect(RenderBoxModelObject* renderer,
return rangeIntersectsRect(renderer, logicalTop, logicalBottom, paintInfo.rect, offset);
}
-void RenderLineBoxList::paint(RenderBoxModelObject* renderer, PaintInfo& paintInfo, const LayoutPoint& paintOffset) const
-{
- // Only paint during the foreground/selection phases.
- if (paintInfo.phase != PaintPhaseForeground && paintInfo.phase != PaintPhaseSelection && paintInfo.phase != PaintPhaseOutline
- && paintInfo.phase != PaintPhaseSelfOutline && paintInfo.phase != PaintPhaseChildOutlines && paintInfo.phase != PaintPhaseTextClip
- && paintInfo.phase != PaintPhaseMask)
- return;
-
- ASSERT(renderer->isRenderBlock() || (renderer->isRenderInline() && renderer->hasLayer())); // The only way an inline could paint like this is if it has a layer.
-
- // If we have no lines then we have no work to do.
- if (!firstLineBox())
- return;
-
- if (!anyLineIntersectsRect(renderer, paintInfo.rect, paintOffset))
- return;
-
- PaintInfo info(paintInfo);
- ListHashSet<RenderInline*> outlineObjects;
- info.setOutlineObjects(&outlineObjects);
-
- // See if our root lines intersect with the dirty rect. If so, then we paint
- // them. Note that boxes can easily overlap, so we can't make any assumptions
- // based off positions of our first line box or our last line box.
- for (InlineFlowBox* curr = firstLineBox(); curr; curr = curr->nextLineBox()) {
- if (lineIntersectsDirtyRect(renderer, curr, info, paintOffset)) {
- RootInlineBox& root = curr->root();
- curr->paint(info, paintOffset, root.lineTop(), root.lineBottom());
- }
- }
-
- if (info.phase == PaintPhaseOutline || info.phase == PaintPhaseSelfOutline || info.phase == PaintPhaseChildOutlines) {
- ListHashSet<RenderInline*>::iterator end = info.outlineObjects()->end();
- for (ListHashSet<RenderInline*>::iterator it = info.outlineObjects()->begin(); it != end; ++it) {
- RenderInline* flow = *it;
- InlinePainter(*flow).paintOutline(info, paintOffset);
- }
- info.outlineObjects()->clear();
- }
-}
-
bool RenderLineBoxList::hitTest(RenderBoxModelObject* renderer, const HitTestRequest& request, HitTestResult& result, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction hitTestAction) const
{
if (hitTestAction != HitTestForeground)
« no previous file with comments | « Source/core/rendering/RenderLineBoxList.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698