| Index: third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
|
| diff --git a/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp b/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
|
| index 8b6925bc2d5d9971948b5becc75219e255cde858..e86cc204f88376db3ef33e188177de17efa82654 100644
|
| --- a/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
|
| @@ -319,8 +319,6 @@ void InlineTextBoxPainter::paintDocumentMarkers(GraphicsContext* pt, const Layou
|
| continue;
|
| break;
|
| case DocumentMarker::TextMatch:
|
| - if (!background)
|
| - continue;
|
| break;
|
| case DocumentMarker::Composition:
|
| break;
|
| @@ -347,7 +345,7 @@ void InlineTextBoxPainter::paintDocumentMarkers(GraphicsContext* pt, const Layou
|
| m_inlineTextBox.paintDocumentMarker(pt, boxOrigin, marker, style, font, true);
|
| break;
|
| case DocumentMarker::TextMatch:
|
| - m_inlineTextBox.paintTextMatchMarker(pt, boxOrigin, marker, style, font);
|
| + m_inlineTextBox.paintTextMatchMarker(pt, boxOrigin, marker, style, font, background);
|
| break;
|
| case DocumentMarker::Composition:
|
| {
|
| @@ -830,7 +828,7 @@ void InlineTextBoxPainter::paintCompositionUnderline(GraphicsContext* ctx, const
|
| ctx->drawLineForText(FloatPoint(boxOrigin.x() + start, (boxOrigin.y() + m_inlineTextBox.logicalHeight() - lineThickness).toFloat()), width, m_inlineTextBox.lineLayoutItem().document().printing());
|
| }
|
|
|
| -void InlineTextBoxPainter::paintTextMatchMarker(GraphicsContext* pt, const LayoutPoint& boxOrigin, DocumentMarker* marker, const ComputedStyle& style, const Font& font)
|
| +void InlineTextBoxPainter::paintTextMatchMarker(GraphicsContext* pt, const LayoutPoint& boxOrigin, DocumentMarker* marker, const ComputedStyle& style, const Font& font, bool background)
|
| {
|
| // 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.
|
| @@ -843,19 +841,24 @@ void InlineTextBoxPainter::paintTextMatchMarker(GraphicsContext* pt, const Layou
|
|
|
| // Optionally highlight the text
|
| if (LineLayoutPaintShim::layoutObjectFrom(m_inlineTextBox.lineLayoutItem())->frame()->editor().markedTextMatchesAreHighlighted()) {
|
| - Color color = marker->activeMatch() ?
|
| + if (background) {
|
| + Color color = marker->activeMatch() ?
|
| LayoutTheme::theme().platformActiveTextSearchHighlightColor() :
|
| LayoutTheme::theme().platformInactiveTextSearchHighlightColor();
|
| - GraphicsContextStateSaver stateSaver(*pt);
|
| - pt->clip(FloatRect(boxOrigin.x().toFloat(), (boxOrigin.y() - deltaY).toFloat(), m_inlineTextBox.logicalWidth().toFloat(), selHeight));
|
| - pt->drawHighlightForText(font, run, FloatPoint(boxOrigin.x().toFloat(), (boxOrigin.y() - deltaY).toFloat()), selHeight, color, sPos, ePos);
|
| -
|
| - // Also Highlight the text with color:transparent
|
| - if (style.visitedDependentColor(CSSPropertyColor) == Color::transparent) {
|
| + GraphicsContextStateSaver stateSaver(*pt);
|
| + pt->clip(FloatRect(boxOrigin.x().toFloat(), (boxOrigin.y() - deltaY).toFloat(), m_inlineTextBox.logicalWidth().toFloat(), selHeight));
|
| + pt->drawHighlightForText(font, run, FloatPoint(boxOrigin.x().toFloat(), (boxOrigin.y() - deltaY).toFloat()), selHeight, color, sPos, ePos);
|
| + } else {
|
| + // Change the text color
|
| int length = m_inlineTextBox.len();
|
| + Color textColor = marker->activeMatch() ?
|
| + LayoutTheme::theme().platformActiveTextSearchColor() :
|
| + LayoutTheme::theme().platformInactiveTextSearchColor();
|
| + if (style.visitedDependentColor(CSSPropertyColor) == textColor)
|
| + return;
|
| TextPainter::Style textStyle;
|
| // When we use the text as a clip, we only care about the alpha, thus we make all the colors black.
|
| - textStyle.currentColor = textStyle.fillColor = textStyle.strokeColor = textStyle.emphasisMarkColor = Color::black;
|
| + textStyle.currentColor = textStyle.fillColor = textStyle.strokeColor = textStyle.emphasisMarkColor = textColor;
|
| textStyle.strokeWidth = style.textStrokeWidth();
|
| textStyle.shadow = 0;
|
|
|
|
|