Index: Source/core/paint/EllipsisBoxPainter.cpp |
diff --git a/Source/core/paint/EllipsisBoxPainter.cpp b/Source/core/paint/EllipsisBoxPainter.cpp |
index 13a4901fae1d5cb0e277236ee166f9e253a4f46f..17de42c6d0f802156a68357ade41dc240a17a782 100644 |
--- a/Source/core/paint/EllipsisBoxPainter.cpp |
+++ b/Source/core/paint/EllipsisBoxPainter.cpp |
@@ -25,18 +25,20 @@ void EllipsisBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint& pa |
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())); |
- RenderDrawingRecorder recorder(paintInfo.context, &m_ellipsisBox.renderer(), paintInfo.phase, boxRect); |
+ RenderDrawingRecorder recorder(context, m_ellipsisBox.renderer(), paintInfo.phase, boxRect); |
+ if (recorder.canUseCachedDrawing()) |
+ return; |
GraphicsContextStateSaver stateSaver(*context); |
if (!m_ellipsisBox.isHorizontal()) |
context->concatCTM(TextPainter::rotation(boxRect, TextPainter::Clockwise)); |
+ const Font& font = style->font(); |
FloatPoint textOrigin(boxOrigin.x(), boxOrigin.y() + font.fontMetrics().ascent()); |
bool isPrinting = m_ellipsisBox.renderer().document().printing(); |