| Index: Source/core/paint/InlineTextBoxPainter.cpp
|
| diff --git a/Source/core/paint/InlineTextBoxPainter.cpp b/Source/core/paint/InlineTextBoxPainter.cpp
|
| index 994f4e8475323386ee3b30d51b4cb309831cbb08..c32e394ed41d99f3ad4410fa7f59da9402f47ba9 100644
|
| --- a/Source/core/paint/InlineTextBoxPainter.cpp
|
| +++ b/Source/core/paint/InlineTextBoxPainter.cpp
|
| @@ -43,7 +43,7 @@ static TextBlobPtr* addToTextBlobCache(InlineTextBox& inlineTextBox)
|
|
|
| void InlineTextBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint& paintOffset)
|
| {
|
| - if (m_inlineTextBox.isLineBreak() || !paintInfo.shouldPaintWithinRoot(&m_inlineTextBox.renderer()) || m_inlineTextBox.renderer().style()->visibility() != VISIBLE
|
| + if (m_inlineTextBox.isLineBreak() || !paintInfo.shouldPaintWithinRoot(&m_inlineTextBox.layoutObject()) || m_inlineTextBox.layoutObject().style()->visibility() != VISIBLE
|
| || m_inlineTextBox.truncation() == cFullTruncation || paintInfo.phase == PaintPhaseOutline || !m_inlineTextBox.len())
|
| return;
|
|
|
| @@ -62,7 +62,7 @@ void InlineTextBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint&
|
| if (logicalStart >= paintEnd || logicalStart + logicalExtent <= paintStart)
|
| return;
|
|
|
| - bool isPrinting = m_inlineTextBox.renderer().document().printing();
|
| + bool isPrinting = m_inlineTextBox.layoutObject().document().printing();
|
|
|
| // Determine whether or not we're selected.
|
| bool haveSelection = !isPrinting && paintInfo.phase != PaintPhaseTextClip && m_inlineTextBox.selectionState() != LayoutObject::SelectionNone;
|
| @@ -83,7 +83,7 @@ void InlineTextBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint&
|
| }
|
|
|
| if (m_inlineTextBox.truncation() != cNoTruncation) {
|
| - if (m_inlineTextBox.renderer().containingBlock()->style()->isLeftToRightDirection() != m_inlineTextBox.isLeftToRightDirection()) {
|
| + if (m_inlineTextBox.layoutObject().containingBlock()->style()->isLeftToRightDirection() != m_inlineTextBox.isLeftToRightDirection()) {
|
| // Make the visible fragment of text hug the edge closest to the rest of the run by moving the origin
|
| // at which we start drawing text.
|
| // e.g. In the case of LTR text truncated in an RTL Context, the correct behavior is:
|
| @@ -92,7 +92,7 @@ void InlineTextBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint&
|
| // farther to the right.
|
| // NOTE: WebKit's behavior differs from that of IE which appears to just overlay the ellipsis on top of the
|
| // truncated string i.e. |Hello|CBA| -> |...lo|CBA|
|
| - LayoutUnit widthOfVisibleText = m_inlineTextBox.renderer().width(m_inlineTextBox.start(), m_inlineTextBox.truncation(), m_inlineTextBox.textPos(), m_inlineTextBox.isLeftToRightDirection() ? LTR : RTL, m_inlineTextBox.isFirstLineStyle());
|
| + LayoutUnit widthOfVisibleText = m_inlineTextBox.layoutObject().width(m_inlineTextBox.start(), m_inlineTextBox.truncation(), m_inlineTextBox.textPos(), m_inlineTextBox.isLeftToRightDirection() ? LTR : RTL, m_inlineTextBox.isFirstLineStyle());
|
| LayoutUnit widthOfHiddenText = m_inlineTextBox.logicalWidth() - widthOfVisibleText;
|
| // FIXME: The hit testing logic also needs to take this translation into account.
|
| LayoutSize truncationOffset(m_inlineTextBox.isLeftToRightDirection() ? widthOfHiddenText : -widthOfHiddenText, 0);
|
| @@ -101,7 +101,7 @@ void InlineTextBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint&
|
| }
|
|
|
| GraphicsContext* context = paintInfo.context;
|
| - const LayoutStyle& styleToUse = m_inlineTextBox.renderer().styleRef(m_inlineTextBox.isFirstLineStyle());
|
| + const LayoutStyle& styleToUse = m_inlineTextBox.layoutObject().styleRef(m_inlineTextBox.isFirstLineStyle());
|
|
|
| FloatPoint boxOrigin = m_inlineTextBox.locationIncludingFlipping().toFloatPoint();
|
| boxOrigin.move(adjustedPaintOffset.x().toFloat(), adjustedPaintOffset.y().toFloat());
|
| @@ -110,8 +110,8 @@ void InlineTextBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint&
|
| bool shouldRotate = false;
|
| LayoutTextCombine* combinedText = nullptr;
|
| if (!m_inlineTextBox.isHorizontal()) {
|
| - if (styleToUse.hasTextCombine() && m_inlineTextBox.renderer().isCombineText()) {
|
| - combinedText = &toLayoutTextCombine(m_inlineTextBox.renderer());
|
| + if (styleToUse.hasTextCombine() && m_inlineTextBox.layoutObject().isCombineText()) {
|
| + combinedText = &toLayoutTextCombine(m_inlineTextBox.layoutObject());
|
| if (!combinedText->isCombined())
|
| combinedText = nullptr;
|
| }
|
| @@ -125,12 +125,12 @@ void InlineTextBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint&
|
| }
|
|
|
| // Determine whether or not we have composition underlines to draw.
|
| - bool containsComposition = m_inlineTextBox.renderer().node() && m_inlineTextBox.renderer().frame()->inputMethodController().compositionNode() == m_inlineTextBox.renderer().node();
|
| - bool useCustomUnderlines = containsComposition && m_inlineTextBox.renderer().frame()->inputMethodController().compositionUsesCustomUnderlines();
|
| + bool containsComposition = m_inlineTextBox.layoutObject().node() && m_inlineTextBox.layoutObject().frame()->inputMethodController().compositionNode() == m_inlineTextBox.layoutObject().node();
|
| + bool useCustomUnderlines = containsComposition && m_inlineTextBox.layoutObject().frame()->inputMethodController().compositionUsesCustomUnderlines();
|
|
|
| // Determine text colors.
|
| - TextPainter::Style textStyle = TextPainter::textPaintingStyle(m_inlineTextBox.renderer(), styleToUse, paintInfo.forceBlackText(), isPrinting);
|
| - TextPainter::Style selectionStyle = TextPainter::selectionPaintingStyle(m_inlineTextBox.renderer(), haveSelection, paintInfo.forceBlackText(), isPrinting, textStyle);
|
| + TextPainter::Style textStyle = TextPainter::textPaintingStyle(m_inlineTextBox.layoutObject(), styleToUse, paintInfo.forceBlackText(), isPrinting);
|
| + TextPainter::Style selectionStyle = TextPainter::selectionPaintingStyle(m_inlineTextBox.layoutObject(), haveSelection, paintInfo.forceBlackText(), isPrinting, textStyle);
|
| bool paintSelectedTextOnly = (paintInfo.phase == PaintPhaseSelection);
|
| bool paintSelectedTextSeparately = !paintSelectedTextOnly && textStyle != selectionStyle;
|
|
|
| @@ -158,11 +158,11 @@ void InlineTextBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint&
|
|
|
| // 2. Now paint the foreground, including text and decorations like underline/overline (in quirks mode only).
|
| int length = m_inlineTextBox.len();
|
| - StringView string = m_inlineTextBox.renderer().text().createView();
|
| + StringView string = m_inlineTextBox.layoutObject().text().createView();
|
| ASSERT(m_inlineTextBox.start() + length <= string.length());
|
| if (static_cast<unsigned>(length) != string.length() || m_inlineTextBox.start())
|
| string.narrow(m_inlineTextBox.start(), length);
|
| - int maximumLength = m_inlineTextBox.renderer().textLength() - m_inlineTextBox.start();
|
| + int maximumLength = m_inlineTextBox.layoutObject().textLength() - m_inlineTextBox.start();
|
|
|
| StringBuilder charactersWithHyphen;
|
| TextRun textRun = m_inlineTextBox.constructTextRun(styleToUse, font, string, maximumLength, m_inlineTextBox.hasHyphen() ? &charactersWithHyphen : 0);
|
| @@ -237,7 +237,7 @@ void InlineTextBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint&
|
|
|
| // Paint custom underlines for compositions.
|
| if (useCustomUnderlines) {
|
| - const Vector<CompositionUnderline>& underlines = m_inlineTextBox.renderer().frame()->inputMethodController().customCompositionUnderlines();
|
| + const Vector<CompositionUnderline>& underlines = m_inlineTextBox.layoutObject().frame()->inputMethodController().customCompositionUnderlines();
|
| CompositionUnderlineRangeFilter filter(underlines, m_inlineTextBox.start(), m_inlineTextBox.end());
|
| for (CompositionUnderlineRangeFilter::ConstIterator it = filter.begin(); it != filter.end(); ++it) {
|
| if (it->color == Color::transparent)
|
| @@ -268,7 +268,7 @@ void InlineTextBoxPainter::paintCompositionBackgrounds(GraphicsContext* pt, cons
|
| {
|
| if (useCustomUnderlines) {
|
| // Paint custom background highlights for compositions.
|
| - const Vector<CompositionUnderline>& underlines = m_inlineTextBox.renderer().frame()->inputMethodController().customCompositionUnderlines();
|
| + const Vector<CompositionUnderline>& underlines = m_inlineTextBox.layoutObject().frame()->inputMethodController().customCompositionUnderlines();
|
| CompositionUnderlineRangeFilter filter(underlines, m_inlineTextBox.start(), m_inlineTextBox.end());
|
| for (CompositionUnderlineRangeFilter::ConstIterator it = filter.begin(); it != filter.end(); ++it) {
|
| if (it->backgroundColor == Color::transparent)
|
| @@ -278,8 +278,8 @@ void InlineTextBoxPainter::paintCompositionBackgrounds(GraphicsContext* pt, cons
|
|
|
| } else {
|
| paintSingleCompositionBackgroundRun(pt, boxOrigin, style, font, LayoutTheme::theme().platformDefaultCompositionBackgroundColor(),
|
| - m_inlineTextBox.renderer().frame()->inputMethodController().compositionStart(),
|
| - m_inlineTextBox.renderer().frame()->inputMethodController().compositionEnd());
|
| + m_inlineTextBox.layoutObject().frame()->inputMethodController().compositionStart(),
|
| + m_inlineTextBox.layoutObject().frame()->inputMethodController().compositionEnd());
|
| }
|
| }
|
|
|
| @@ -290,7 +290,7 @@ void InlineTextBoxPainter::paintSingleCompositionBackgroundRun(GraphicsContext*
|
| if (sPos >= ePos)
|
| return;
|
|
|
| - int deltaY = m_inlineTextBox.renderer().style()->isFlippedLinesWritingMode() ? m_inlineTextBox.root().selectionBottom() - m_inlineTextBox.logicalBottom() : m_inlineTextBox.logicalTop() - m_inlineTextBox.root().selectionTop();
|
| + int deltaY = m_inlineTextBox.layoutObject().style()->isFlippedLinesWritingMode() ? m_inlineTextBox.root().selectionBottom() - m_inlineTextBox.logicalBottom() : m_inlineTextBox.logicalTop() - m_inlineTextBox.root().selectionTop();
|
| int selHeight = m_inlineTextBox.root().selectionHeight();
|
| FloatPoint localOrigin(boxOrigin.x(), boxOrigin.y() - deltaY);
|
| context->drawHighlightForText(font, m_inlineTextBox.constructTextRun(style, font), localOrigin, selHeight, backgroundColor, sPos, ePos);
|
| @@ -298,10 +298,10 @@ void InlineTextBoxPainter::paintSingleCompositionBackgroundRun(GraphicsContext*
|
|
|
| void InlineTextBoxPainter::paintDocumentMarkers(GraphicsContext* pt, const FloatPoint& boxOrigin, const LayoutStyle& style, const Font& font, bool background)
|
| {
|
| - if (!m_inlineTextBox.renderer().node())
|
| + if (!m_inlineTextBox.layoutObject().node())
|
| return;
|
|
|
| - DocumentMarkerVector markers = m_inlineTextBox.renderer().document().markers().markersFor(m_inlineTextBox.renderer().node());
|
| + DocumentMarkerVector markers = m_inlineTextBox.layoutObject().document().markers().markersFor(m_inlineTextBox.layoutObject().node());
|
| DocumentMarkerVector::const_iterator markerIt = markers.begin();
|
|
|
| // Give any document markers that touch this run a chance to draw before the text has been drawn.
|
| @@ -367,7 +367,7 @@ static GraphicsContext::DocumentMarkerLineStyle lineStyleForMarkerType(DocumentM
|
| void InlineTextBoxPainter::paintDocumentMarker(GraphicsContext* pt, const FloatPoint& boxOrigin, DocumentMarker* marker, const LayoutStyle& style, const Font& font, bool grammar)
|
| {
|
| // Never print spelling/grammar markers (5327887)
|
| - if (m_inlineTextBox.renderer().document().printing())
|
| + if (m_inlineTextBox.layoutObject().document().printing())
|
| return;
|
|
|
| if (m_inlineTextBox.truncation() == cFullTruncation)
|
| @@ -393,7 +393,7 @@ void InlineTextBoxPainter::paintDocumentMarker(GraphicsContext* pt, const FloatP
|
| endPosition = std::min<int>(endPosition, m_inlineTextBox.truncation());
|
|
|
| // Calculate start & width
|
| - int deltaY = m_inlineTextBox.renderer().style()->isFlippedLinesWritingMode() ? m_inlineTextBox.root().selectionBottom() - m_inlineTextBox.logicalBottom() : m_inlineTextBox.logicalTop() - m_inlineTextBox.root().selectionTop();
|
| + int deltaY = m_inlineTextBox.layoutObject().style()->isFlippedLinesWritingMode() ? m_inlineTextBox.root().selectionBottom() - m_inlineTextBox.logicalBottom() : m_inlineTextBox.logicalTop() - m_inlineTextBox.root().selectionTop();
|
| int selHeight = m_inlineTextBox.root().selectionHeight();
|
| FloatPoint startPoint(boxOrigin.x(), boxOrigin.y() - deltaY);
|
| TextRun run = m_inlineTextBox.constructTextRun(style, font);
|
| @@ -407,7 +407,7 @@ void InlineTextBoxPainter::paintDocumentMarker(GraphicsContext* pt, const FloatP
|
| // display a toolTip. We don't do this for misspelling markers.
|
| if (grammar) {
|
| markerRect.move(-boxOrigin.x(), -boxOrigin.y());
|
| - markerRect = m_inlineTextBox.renderer().localToAbsoluteQuad(FloatRect(markerRect)).enclosingBoundingBox();
|
| + markerRect = m_inlineTextBox.layoutObject().localToAbsoluteQuad(FloatRect(markerRect)).enclosingBoundingBox();
|
| toRenderedDocumentMarker(marker)->setRenderedRect(LayoutRect(markerRect));
|
| }
|
| }
|
| @@ -419,7 +419,7 @@ void InlineTextBoxPainter::paintDocumentMarker(GraphicsContext* pt, const FloatP
|
| // So, we generally place the underline at the bottom of the text, but in larger fonts that's not so good so
|
| // we pin to two pixels under the baseline.
|
| int lineThickness = misspellingLineThickness;
|
| - int baseline = m_inlineTextBox.renderer().style(m_inlineTextBox.isFirstLineStyle())->fontMetrics().ascent();
|
| + int baseline = m_inlineTextBox.layoutObject().style(m_inlineTextBox.isFirstLineStyle())->fontMetrics().ascent();
|
| int descent = m_inlineTextBox.logicalHeight() - baseline;
|
| int underlineOffset;
|
| if (descent <= (2 + lineThickness)) {
|
| @@ -441,7 +441,7 @@ void InlineTextBoxPainter::paintSelection(GraphicsContext* context, const FloatR
|
| if (sPos >= ePos)
|
| return;
|
|
|
| - Color c = m_inlineTextBox.renderer().selectionBackgroundColor();
|
| + Color c = m_inlineTextBox.layoutObject().selectionBackgroundColor();
|
| if (!c.alpha())
|
| return;
|
|
|
| @@ -453,14 +453,14 @@ void InlineTextBoxPainter::paintSelection(GraphicsContext* context, const FloatR
|
| // If the text is truncated, let the thing being painted in the truncation
|
| // draw its own highlight.
|
| int length = m_inlineTextBox.truncation() != cNoTruncation ? m_inlineTextBox.truncation() : m_inlineTextBox.len();
|
| - StringView string = m_inlineTextBox.renderer().text().createView();
|
| + StringView string = m_inlineTextBox.layoutObject().text().createView();
|
|
|
| if (string.length() != static_cast<unsigned>(length) || m_inlineTextBox.start())
|
| string.narrow(m_inlineTextBox.start(), length);
|
|
|
| StringBuilder charactersWithHyphen;
|
| bool respectHyphen = ePos == length && m_inlineTextBox.hasHyphen();
|
| - TextRun textRun = m_inlineTextBox.constructTextRun(style, font, string, m_inlineTextBox.renderer().textLength() - m_inlineTextBox.start(), respectHyphen ? &charactersWithHyphen : 0);
|
| + TextRun textRun = m_inlineTextBox.constructTextRun(style, font, string, m_inlineTextBox.layoutObject().textLength() - m_inlineTextBox.start(), respectHyphen ? &charactersWithHyphen : 0);
|
| if (respectHyphen)
|
| ePos = textRun.length();
|
|
|
| @@ -480,7 +480,7 @@ void InlineTextBoxPainter::paintSelection(GraphicsContext* context, const FloatR
|
| LayoutUnit selectionBottom = m_inlineTextBox.root().selectionBottom();
|
| LayoutUnit selectionTop = m_inlineTextBox.root().selectionTopAdjustedForPrecedingBlock();
|
|
|
| - int deltaY = roundToInt(m_inlineTextBox.renderer().style()->isFlippedLinesWritingMode() ? selectionBottom - m_inlineTextBox.logicalBottom() : m_inlineTextBox.logicalTop() - selectionTop);
|
| + int deltaY = roundToInt(m_inlineTextBox.layoutObject().style()->isFlippedLinesWritingMode() ? selectionBottom - m_inlineTextBox.logicalBottom() : m_inlineTextBox.logicalTop() - selectionTop);
|
| int selHeight = std::max(0, roundToInt(selectionBottom - selectionTop));
|
|
|
| FloatPoint localOrigin(boxRect.x(), boxRect.y() - deltaY);
|
| @@ -713,21 +713,21 @@ void InlineTextBoxPainter::paintDecoration(GraphicsContext* context, const Float
|
|
|
| float width = m_inlineTextBox.logicalWidth();
|
| if (m_inlineTextBox.truncation() != cNoTruncation) {
|
| - width = m_inlineTextBox.renderer().width(m_inlineTextBox.start(), m_inlineTextBox.truncation(), m_inlineTextBox.textPos(), m_inlineTextBox.isLeftToRightDirection() ? LTR : RTL, m_inlineTextBox.isFirstLineStyle());
|
| + width = m_inlineTextBox.layoutObject().width(m_inlineTextBox.start(), m_inlineTextBox.truncation(), m_inlineTextBox.textPos(), m_inlineTextBox.isLeftToRightDirection() ? LTR : RTL, m_inlineTextBox.isFirstLineStyle());
|
| if (!m_inlineTextBox.isLeftToRightDirection())
|
| localOrigin.move(m_inlineTextBox.logicalWidth() - width, 0);
|
| }
|
|
|
| // Get the text decoration colors.
|
| LayoutObject::AppliedTextDecoration underline, overline, linethrough;
|
| - m_inlineTextBox.renderer().getTextDecorations(deco, underline, overline, linethrough, true);
|
| + m_inlineTextBox.layoutObject().getTextDecorations(deco, underline, overline, linethrough, true);
|
| if (m_inlineTextBox.isFirstLineStyle())
|
| - m_inlineTextBox.renderer().getTextDecorations(deco, underline, overline, linethrough, true, true);
|
| + m_inlineTextBox.layoutObject().getTextDecorations(deco, underline, overline, linethrough, true, true);
|
|
|
| // Use a special function for underlines to get the positioning exactly right.
|
| - bool isPrinting = m_inlineTextBox.renderer().document().printing();
|
| + bool isPrinting = m_inlineTextBox.layoutObject().document().printing();
|
|
|
| - const LayoutStyle& styleToUse = m_inlineTextBox.renderer().styleRef(m_inlineTextBox.isFirstLineStyle());
|
| + const LayoutStyle& styleToUse = m_inlineTextBox.layoutObject().styleRef(m_inlineTextBox.isFirstLineStyle());
|
| int baseline = styleToUse.fontMetrics().ascent();
|
|
|
| // Set the thick of the line to be 10% (or something else ?)of the computed font size and not less than 1px.
|
| @@ -770,16 +770,16 @@ void InlineTextBoxPainter::paintCompositionUnderline(GraphicsContext* ctx, const
|
|
|
| // start of line to draw, relative to paintOffset.
|
| float start = paintStart == static_cast<unsigned>(m_inlineTextBox.start()) ? 0 :
|
| - m_inlineTextBox.renderer().width(m_inlineTextBox.start(), paintStart - m_inlineTextBox.start(), m_inlineTextBox.textPos(), m_inlineTextBox.isLeftToRightDirection() ? LTR : RTL, m_inlineTextBox.isFirstLineStyle());
|
| + m_inlineTextBox.layoutObject().width(m_inlineTextBox.start(), paintStart - m_inlineTextBox.start(), m_inlineTextBox.textPos(), m_inlineTextBox.isLeftToRightDirection() ? LTR : RTL, m_inlineTextBox.isFirstLineStyle());
|
| // how much line to draw
|
| float width = (paintStart == static_cast<unsigned>(m_inlineTextBox.start()) && paintEnd == static_cast<unsigned>(m_inlineTextBox.end()) + 1) ? m_inlineTextBox.logicalWidth().toFloat() :
|
| - m_inlineTextBox.renderer().width(paintStart, paintEnd - paintStart, m_inlineTextBox.textPos() + start, m_inlineTextBox.isLeftToRightDirection() ? LTR : RTL, m_inlineTextBox.isFirstLineStyle());
|
| + m_inlineTextBox.layoutObject().width(paintStart, paintEnd - paintStart, m_inlineTextBox.textPos() + start, m_inlineTextBox.isLeftToRightDirection() ? LTR : RTL, m_inlineTextBox.isFirstLineStyle());
|
|
|
| // Thick marked text underlines are 2px thick as long as there is room for the 2px line under the baseline.
|
| // All other marked text underlines are 1px thick.
|
| // If there's not enough space the underline will touch or overlap characters.
|
| int lineThickness = 1;
|
| - int baseline = m_inlineTextBox.renderer().style(m_inlineTextBox.isFirstLineStyle())->fontMetrics().ascent();
|
| + int baseline = m_inlineTextBox.layoutObject().style(m_inlineTextBox.isFirstLineStyle())->fontMetrics().ascent();
|
| if (underline.thick && m_inlineTextBox.logicalHeight() - baseline >= 2)
|
| lineThickness = 2;
|
|
|
| @@ -790,14 +790,14 @@ void InlineTextBoxPainter::paintCompositionUnderline(GraphicsContext* ctx, const
|
|
|
| ctx->setStrokeColor(underline.color);
|
| ctx->setStrokeThickness(lineThickness);
|
| - ctx->drawLineForText(FloatPoint(boxOrigin.x() + start, boxOrigin.y() + m_inlineTextBox.logicalHeight() - lineThickness), width, m_inlineTextBox.renderer().document().printing());
|
| + ctx->drawLineForText(FloatPoint(boxOrigin.x() + start, boxOrigin.y() + m_inlineTextBox.logicalHeight() - lineThickness), width, m_inlineTextBox.layoutObject().document().printing());
|
| }
|
|
|
| void InlineTextBoxPainter::paintTextMatchMarker(GraphicsContext* pt, const FloatPoint& boxOrigin, DocumentMarker* marker, const LayoutStyle& style, const Font& font)
|
| {
|
| // Use same y positioning and height as for selection, so that when the selection and this highlight are on
|
| // the same word there are no pieces sticking out.
|
| - int deltaY = m_inlineTextBox.renderer().style()->isFlippedLinesWritingMode() ? m_inlineTextBox.root().selectionBottom() - m_inlineTextBox.logicalBottom() : m_inlineTextBox.logicalTop() - m_inlineTextBox.root().selectionTop();
|
| + int deltaY = m_inlineTextBox.layoutObject().style()->isFlippedLinesWritingMode() ? m_inlineTextBox.root().selectionBottom() - m_inlineTextBox.logicalBottom() : m_inlineTextBox.logicalTop() - m_inlineTextBox.root().selectionTop();
|
| int selHeight = m_inlineTextBox.root().selectionHeight();
|
|
|
| int sPos = std::max(marker->startOffset() - m_inlineTextBox.start(), (unsigned)0);
|
| @@ -806,11 +806,11 @@ void InlineTextBoxPainter::paintTextMatchMarker(GraphicsContext* pt, const Float
|
|
|
| // Always compute and store the rect associated with this marker. The computed rect is in absolute coordinates.
|
| IntRect markerRect = enclosingIntRect(font.selectionRectForText(run, IntPoint(m_inlineTextBox.x(), m_inlineTextBox.root().selectionTop()), selHeight, sPos, ePos));
|
| - markerRect = m_inlineTextBox.renderer().localToAbsoluteQuad(FloatRect(markerRect)).enclosingBoundingBox();
|
| + markerRect = m_inlineTextBox.layoutObject().localToAbsoluteQuad(FloatRect(markerRect)).enclosingBoundingBox();
|
| toRenderedDocumentMarker(marker)->setRenderedRect(LayoutRect(markerRect));
|
|
|
| // Optionally highlight the text
|
| - if (m_inlineTextBox.renderer().frame()->editor().markedTextMatchesAreHighlighted()) {
|
| + if (m_inlineTextBox.layoutObject().frame()->editor().markedTextMatchesAreHighlighted()) {
|
| Color color = marker->activeMatch() ?
|
| LayoutTheme::theme().platformActiveTextSearchHighlightColor() :
|
| LayoutTheme::theme().platformInactiveTextSearchHighlightColor();
|
|
|