| Index: Source/core/paint/EllipsisBoxPainter.cpp
|
| diff --git a/Source/core/paint/EllipsisBoxPainter.cpp b/Source/core/paint/EllipsisBoxPainter.cpp
|
| index 3f2ce02a06213ec87a0d986e79a03614f2d857a1..c6dc58d9f49dc67a3a7cd6647d17d77b50815c8d 100644
|
| --- a/Source/core/paint/EllipsisBoxPainter.cpp
|
| +++ b/Source/core/paint/EllipsisBoxPainter.cpp
|
| @@ -5,6 +5,7 @@
|
| #include "config.h"
|
| #include "core/paint/EllipsisBoxPainter.h"
|
|
|
| +#include "core/paint/DrawingRecorder.h"
|
| #include "core/paint/TextPainter.h"
|
| #include "core/rendering/EllipsisBox.h"
|
| #include "core/rendering/PaintInfo.h"
|
| @@ -16,14 +17,23 @@ namespace blink {
|
|
|
| void EllipsisBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint& paintOffset, LayoutUnit lineTop, LayoutUnit lineBottom)
|
| {
|
| - GraphicsContext* context = paintInfo.context;
|
| RenderStyle* style = m_ellipsisBox.renderer().style(m_ellipsisBox.isFirstLineStyle());
|
| + paintEllipsis(paintInfo, paintOffset, lineTop, lineBottom, style);
|
| + paintMarkupBox(paintInfo, paintOffset, lineTop, lineBottom, style);
|
| +}
|
| +
|
| +void EllipsisBoxPainter::paintEllipsis(const PaintInfo& paintInfo, const LayoutPoint& paintOffset, LayoutUnit lineTop, LayoutUnit lineBottom, RenderStyle* style)
|
| +{
|
| + GraphicsContext* context = paintInfo.context;
|
| const Font& font = style->font();
|
| FloatPoint boxOrigin = m_ellipsisBox.locationIncludingFlipping();
|
| boxOrigin.moveBy(FloatPoint(paintOffset));
|
| if (!m_ellipsisBox.isHorizontal())
|
| boxOrigin.move(0, -m_ellipsisBox.virtualLogicalHeight());
|
| FloatRect boxRect(boxOrigin, FloatSize(m_ellipsisBox.logicalWidth(), m_ellipsisBox.virtualLogicalHeight()));
|
| +
|
| + DrawingRecorder recorder(paintInfo.context, &m_ellipsisBox.renderer(), paintInfo.phase, boxRect);
|
| +
|
| GraphicsContextStateSaver stateSaver(*context);
|
| if (!m_ellipsisBox.isHorizontal())
|
| context->concatCTM(TextPainter::rotation(boxRect, TextPainter::Clockwise));
|
| @@ -44,8 +54,6 @@ void EllipsisBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint& pa
|
| TextRun textRun = constructTextRun(&m_ellipsisBox.renderer(), font, m_ellipsisBox.ellipsisStr(), style, TextRun::AllowTrailingExpansion);
|
| TextPainter textPainter(context, font, textRun, textOrigin, boxRect, m_ellipsisBox.isHorizontal());
|
| textPainter.paint(0, m_ellipsisBox.ellipsisStr().length(), m_ellipsisBox.ellipsisStr().length(), textStyle);
|
| -
|
| - paintMarkupBox(paintInfo, paintOffset, lineTop, lineBottom, style);
|
| }
|
|
|
| void EllipsisBoxPainter::paintMarkupBox(const PaintInfo& paintInfo, const LayoutPoint& paintOffset, LayoutUnit lineTop, LayoutUnit lineBottom, RenderStyle* style)
|
|
|