| OLD | NEW |
| 1 /* | 1 /* |
| 2 * (C) 1999 Lars Knoll (knoll@kde.org) | 2 * (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 2000 Dirk Mueller (mueller@kde.org) | 3 * (C) 2000 Dirk Mueller (mueller@kde.org) |
| 4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. | 4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. |
| 5 * | 5 * |
| 6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
| 7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
| 8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
| 9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
| 10 * | 10 * |
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 boxOrigin.moveBy(accumulatedOffset); | 385 boxOrigin.moveBy(accumulatedOffset); |
| 386 FloatRect rect(boxOrigin, size()); | 386 FloatRect rect(boxOrigin, size()); |
| 387 if (m_truncation != cFullTruncation && visibleToHitTestRequest(request) && l
ocationInContainer.intersects(rect)) { | 387 if (m_truncation != cFullTruncation && visibleToHitTestRequest(request) && l
ocationInContainer.intersects(rect)) { |
| 388 renderer()->updateHitTestResult(result, flipForWritingMode(locationInCon
tainer.point() - toLayoutSize(accumulatedOffset))); | 388 renderer()->updateHitTestResult(result, flipForWritingMode(locationInCon
tainer.point() - toLayoutSize(accumulatedOffset))); |
| 389 if (!result.addNodeToRectBasedTestResult(renderer()->node(), request, lo
cationInContainer, rect)) | 389 if (!result.addNodeToRectBasedTestResult(renderer()->node(), request, lo
cationInContainer, rect)) |
| 390 return true; | 390 return true; |
| 391 } | 391 } |
| 392 return false; | 392 return false; |
| 393 } | 393 } |
| 394 | 394 |
| 395 static void paintTextWithShadows(GraphicsContext* context, const Font& font, con
st TextRun& textRun, | 395 static void paintTextWithShadows(GraphicsContext* context, |
| 396 const AtomicString& emphasisMark, int emphasisM
arkOffset, | 396 const RenderObject* renderer, const Font& font, const TextRun& textRun, |
| 397 int startOffset, int endOffset, int truncationP
oint, | 397 const AtomicString& emphasisMark, int emphasisMarkOffset, |
| 398 const FloatPoint& textOrigin, const FloatRect&
boxRect, | 398 int startOffset, int endOffset, int truncationPoint, |
| 399 const ShadowData* shadow, bool stroked, bool ho
rizontal) | 399 const FloatPoint& textOrigin, const FloatRect& boxRect, |
| 400 const ShadowData* shadow, bool stroked, bool horizontal) |
| 400 { | 401 { |
| 401 // Text shadows are disabled when printing. http://crbug.com/258321 | 402 // Text shadows are disabled when printing. http://crbug.com/258321 |
| 402 bool hasShadow = shadow && !context->printing(); | 403 bool hasShadow = shadow && !context->printing(); |
| 403 Color fillColor = context->fillColor(); | 404 Color fillColor = context->fillColor(); |
| 404 | 405 |
| 405 if (hasShadow) { | 406 if (hasShadow) { |
| 406 DrawLooper drawLooper; | 407 DrawLooper drawLooper; |
| 407 do { | 408 do { |
| 408 int shadowX = horizontal ? shadow->x() : shadow->y(); | 409 int shadowX = horizontal ? shadow->x() : shadow->y(); |
| 409 int shadowY = horizontal ? shadow->y() : -shadow->x(); | 410 int shadowY = horizontal ? shadow->y() : -shadow->x(); |
| 410 FloatSize offset(shadowX, shadowY); | 411 FloatSize offset(shadowX, shadowY); |
| 411 drawLooper.addShadow(offset, shadow->blur(), shadow->color(), | 412 drawLooper.addShadow(offset, shadow->blur(), renderer->resolveColor(
shadow->color()), |
| 412 DrawLooper::ShadowRespectsTransforms, DrawLooper::ShadowIgnoresA
lpha); | 413 DrawLooper::ShadowRespectsTransforms, DrawLooper::ShadowIgnoresA
lpha); |
| 413 } while ((shadow = shadow->next())); | 414 } while ((shadow = shadow->next())); |
| 414 drawLooper.addUnmodifiedContent(); | 415 drawLooper.addUnmodifiedContent(); |
| 415 context->setDrawLooper(drawLooper); | 416 context->setDrawLooper(drawLooper); |
| 416 } | 417 } |
| 417 | 418 |
| 418 TextRunPaintInfo textRunPaintInfo(textRun); | 419 TextRunPaintInfo textRunPaintInfo(textRun); |
| 419 textRunPaintInfo.bounds = boxRect; | 420 textRunPaintInfo.bounds = boxRect; |
| 420 if (startOffset <= endOffset) { | 421 if (startOffset <= endOffset) { |
| 421 textRunPaintInfo.from = startOffset; | 422 textRunPaintInfo.from = startOffset; |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 520 LayoutUnit widthOfVisibleText = toRenderText(renderer())->width(m_st
art, m_truncation, textPos(), isFirstLineStyle()); | 521 LayoutUnit widthOfVisibleText = toRenderText(renderer())->width(m_st
art, m_truncation, textPos(), isFirstLineStyle()); |
| 521 LayoutUnit widthOfHiddenText = m_logicalWidth - widthOfVisibleText; | 522 LayoutUnit widthOfHiddenText = m_logicalWidth - widthOfVisibleText; |
| 522 // FIXME: The hit testing logic also needs to take this translation
into account. | 523 // FIXME: The hit testing logic also needs to take this translation
into account. |
| 523 LayoutSize truncationOffset(isLeftToRightDirection() ? widthOfHidden
Text : -widthOfHiddenText, 0); | 524 LayoutSize truncationOffset(isLeftToRightDirection() ? widthOfHidden
Text : -widthOfHiddenText, 0); |
| 524 adjustedPaintOffset.move(isHorizontal() ? truncationOffset : truncat
ionOffset.transposedSize()); | 525 adjustedPaintOffset.move(isHorizontal() ? truncationOffset : truncat
ionOffset.transposedSize()); |
| 525 } | 526 } |
| 526 } | 527 } |
| 527 | 528 |
| 528 GraphicsContext* context = paintInfo.context; | 529 GraphicsContext* context = paintInfo.context; |
| 529 | 530 |
| 530 RenderStyle* styleToUse = renderer()->style(isFirstLineStyle()); | 531 RenderObject* rendererToUse = renderer(); |
| 532 RenderStyle* styleToUse = rendererToUse->style(isFirstLineStyle()); |
| 531 | 533 |
| 532 adjustedPaintOffset.move(0, styleToUse->isHorizontalWritingMode() ? 0 : -log
icalHeight()); | 534 adjustedPaintOffset.move(0, styleToUse->isHorizontalWritingMode() ? 0 : -log
icalHeight()); |
| 533 | 535 |
| 534 FloatPoint boxOrigin = locationIncludingFlipping(); | 536 FloatPoint boxOrigin = locationIncludingFlipping(); |
| 535 boxOrigin.move(adjustedPaintOffset.x(), adjustedPaintOffset.y()); | 537 boxOrigin.move(adjustedPaintOffset.x(), adjustedPaintOffset.y()); |
| 536 FloatRect boxRect(boxOrigin, LayoutSize(logicalWidth(), logicalHeight())); | 538 FloatRect boxRect(boxOrigin, LayoutSize(logicalWidth(), logicalHeight())); |
| 537 | 539 |
| 538 RenderCombineText* combinedText = styleToUse->hasTextCombine() && textRender
er()->isCombineText() && toRenderCombineText(textRenderer())->isCombined() ? toR
enderCombineText(textRenderer()) : 0; | 540 RenderCombineText* combinedText = styleToUse->hasTextCombine() && textRender
er()->isCombineText() && toRenderCombineText(textRenderer())->isCombined() ? toR
enderCombineText(textRenderer()) : 0; |
| 539 | 541 |
| 540 bool shouldRotate = !isHorizontal() && !combinedText; | 542 bool shouldRotate = !isHorizontal() && !combinedText; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 552 float textStrokeWidth = styleToUse->textStrokeWidth(); | 554 float textStrokeWidth = styleToUse->textStrokeWidth(); |
| 553 | 555 |
| 554 // Text shadows are disabled when printing. http://crbug.com/258321 | 556 // Text shadows are disabled when printing. http://crbug.com/258321 |
| 555 const ShadowData* textShadow = (context->printing() || paintInfo.forceBlackT
ext()) ? 0 : styleToUse->textShadow(); | 557 const ShadowData* textShadow = (context->printing() || paintInfo.forceBlackT
ext()) ? 0 : styleToUse->textShadow(); |
| 556 | 558 |
| 557 if (paintInfo.forceBlackText()) { | 559 if (paintInfo.forceBlackText()) { |
| 558 textFillColor = Color::black; | 560 textFillColor = Color::black; |
| 559 textStrokeColor = Color::black; | 561 textStrokeColor = Color::black; |
| 560 emphasisMarkColor = Color::black; | 562 emphasisMarkColor = Color::black; |
| 561 } else { | 563 } else { |
| 562 textFillColor = styleToUse->visitedDependentColor(CSSPropertyWebkitTextF
illColor); | 564 textFillColor = rendererToUse->resolveColor(styleToUse, CSSPropertyWebki
tTextFillColor); |
| 563 | 565 |
| 564 bool forceBackgroundToWhite = false; | 566 bool forceBackgroundToWhite = false; |
| 565 if (isPrinting) { | 567 if (isPrinting) { |
| 566 if (styleToUse->printColorAdjust() == PrintColorAdjustEconomy) | 568 if (styleToUse->printColorAdjust() == PrintColorAdjustEconomy) |
| 567 forceBackgroundToWhite = true; | 569 forceBackgroundToWhite = true; |
| 568 if (textRenderer()->document()->settings() && textRenderer()->docume
nt()->settings()->shouldPrintBackgrounds()) | 570 if (textRenderer()->document()->settings() && textRenderer()->docume
nt()->settings()->shouldPrintBackgrounds()) |
| 569 forceBackgroundToWhite = false; | 571 forceBackgroundToWhite = false; |
| 570 } | 572 } |
| 571 | 573 |
| 572 // Make the text fill color legible against a white background | 574 // Make the text fill color legible against a white background |
| 573 if (forceBackgroundToWhite) | 575 if (forceBackgroundToWhite) |
| 574 textFillColor = correctedTextColor(textFillColor, Color::white); | 576 textFillColor = correctedTextColor(textFillColor, Color::white); |
| 575 | 577 |
| 576 textStrokeColor = styleToUse->visitedDependentColor(CSSPropertyWebkitTex
tStrokeColor); | 578 textStrokeColor = rendererToUse->resolveColor(styleToUse, CSSPropertyWeb
kitTextStrokeColor); |
| 577 | 579 |
| 578 // Make the text stroke color legible against a white background | 580 // Make the text stroke color legible against a white background |
| 579 if (forceBackgroundToWhite) | 581 if (forceBackgroundToWhite) |
| 580 textStrokeColor = correctedTextColor(textStrokeColor, Color::white); | 582 textStrokeColor = correctedTextColor(textStrokeColor, Color::white); |
| 581 | 583 |
| 582 emphasisMarkColor = styleToUse->visitedDependentColor(CSSPropertyWebkitT
extEmphasisColor); | 584 emphasisMarkColor = rendererToUse->resolveColor(styleToUse, CSSPropertyW
ebkitTextEmphasisColor); |
| 583 | 585 |
| 584 // Make the text stroke color legible against a white background | 586 // Make the text stroke color legible against a white background |
| 585 if (forceBackgroundToWhite) | 587 if (forceBackgroundToWhite) |
| 586 emphasisMarkColor = correctedTextColor(emphasisMarkColor, Color::whi
te); | 588 emphasisMarkColor = correctedTextColor(emphasisMarkColor, Color::whi
te); |
| 587 } | 589 } |
| 588 | 590 |
| 589 bool paintSelectedTextOnly = (paintInfo.phase == PaintPhaseSelection); | 591 bool paintSelectedTextOnly = (paintInfo.phase == PaintPhaseSelection); |
| 590 bool paintSelectedTextSeparately = false; | 592 bool paintSelectedTextSeparately = false; |
| 591 | 593 |
| 592 Color selectionFillColor = textFillColor; | 594 Color selectionFillColor = textFillColor; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 619 selectionShadow = shadow; | 621 selectionShadow = shadow; |
| 620 } | 622 } |
| 621 | 623 |
| 622 float strokeWidth = pseudoStyle->textStrokeWidth(); | 624 float strokeWidth = pseudoStyle->textStrokeWidth(); |
| 623 if (strokeWidth != selectionStrokeWidth) { | 625 if (strokeWidth != selectionStrokeWidth) { |
| 624 if (!paintSelectedTextOnly) | 626 if (!paintSelectedTextOnly) |
| 625 paintSelectedTextSeparately = true; | 627 paintSelectedTextSeparately = true; |
| 626 selectionStrokeWidth = strokeWidth; | 628 selectionStrokeWidth = strokeWidth; |
| 627 } | 629 } |
| 628 | 630 |
| 629 Color stroke = paintInfo.forceBlackText() ? Color::black : pseudoSty
le->visitedDependentColor(CSSPropertyWebkitTextStrokeColor); | 631 Color stroke = paintInfo.forceBlackText() ? Color::black : rendererT
oUse->resolveColor(pseudoStyle, CSSPropertyWebkitTextStrokeColor); |
| 630 if (stroke != selectionStrokeColor) { | 632 if (stroke != selectionStrokeColor) { |
| 631 if (!paintSelectedTextOnly) | 633 if (!paintSelectedTextOnly) |
| 632 paintSelectedTextSeparately = true; | 634 paintSelectedTextSeparately = true; |
| 633 selectionStrokeColor = stroke; | 635 selectionStrokeColor = stroke; |
| 634 } | 636 } |
| 635 } | 637 } |
| 636 } | 638 } |
| 637 | 639 |
| 638 // Set our font. | 640 // Set our font. |
| 639 const Font& font = styleToUse->font(); | 641 const Font& font = styleToUse->font(); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 709 emphasisMarkOffset = emphasisMarkPosition == TextEmphasisPositionOver ?
-font.fontMetrics().ascent() - font.emphasisMarkDescent(emphasisMark) : font.fon
tMetrics().descent() + font.emphasisMarkAscent(emphasisMark); | 711 emphasisMarkOffset = emphasisMarkPosition == TextEmphasisPositionOver ?
-font.fontMetrics().ascent() - font.emphasisMarkDescent(emphasisMark) : font.fon
tMetrics().descent() + font.emphasisMarkAscent(emphasisMark); |
| 710 | 712 |
| 711 if (!paintSelectedTextOnly) { | 713 if (!paintSelectedTextOnly) { |
| 712 // For stroked painting, we have to change the text drawing mode. It's
probably dangerous to leave that mutated as a side | 714 // For stroked painting, we have to change the text drawing mode. It's
probably dangerous to leave that mutated as a side |
| 713 // effect, so only when we know we're stroking, do a save/restore. | 715 // effect, so only when we know we're stroking, do a save/restore. |
| 714 GraphicsContextStateSaver stateSaver(*context, textStrokeWidth > 0); | 716 GraphicsContextStateSaver stateSaver(*context, textStrokeWidth > 0); |
| 715 | 717 |
| 716 updateGraphicsContext(context, textFillColor, textStrokeColor, textStrok
eWidth); | 718 updateGraphicsContext(context, textFillColor, textStrokeColor, textStrok
eWidth); |
| 717 if (!paintSelectedTextSeparately || ePos <= sPos) { | 719 if (!paintSelectedTextSeparately || ePos <= sPos) { |
| 718 // FIXME: Truncate right-to-left text correctly. | 720 // FIXME: Truncate right-to-left text correctly. |
| 719 paintTextWithShadows(context, font, textRun, nullAtom, 0, 0, length,
length, textOrigin, boxRect, textShadow, textStrokeWidth > 0, isHorizontal()); | 721 paintTextWithShadows(context, rendererToUse, font, textRun, nullAtom
, 0, 0, length, length, textOrigin, boxRect, textShadow, textStrokeWidth > 0, is
Horizontal()); |
| 720 } else | 722 } else { |
| 721 paintTextWithShadows(context, font, textRun, nullAtom, 0, ePos, sPos
, length, textOrigin, boxRect, textShadow, textStrokeWidth > 0, isHorizontal()); | 723 paintTextWithShadows(context, rendererToUse, font, textRun, nullAtom
, 0, ePos, sPos, length, textOrigin, boxRect, textShadow, textStrokeWidth > 0, i
sHorizontal()); |
| 724 } |
| 722 | 725 |
| 723 if (!emphasisMark.isEmpty()) { | 726 if (!emphasisMark.isEmpty()) { |
| 724 updateGraphicsContext(context, emphasisMarkColor, textStrokeColor, t
extStrokeWidth); | 727 updateGraphicsContext(context, emphasisMarkColor, textStrokeColor, t
extStrokeWidth); |
| 725 | 728 |
| 726 DEFINE_STATIC_LOCAL(TextRun, objectReplacementCharacterTextRun, (&ob
jectReplacementCharacter, 1)); | 729 DEFINE_STATIC_LOCAL(TextRun, objectReplacementCharacterTextRun, (&ob
jectReplacementCharacter, 1)); |
| 727 TextRun& emphasisMarkTextRun = combinedText ? objectReplacementChara
cterTextRun : textRun; | 730 TextRun& emphasisMarkTextRun = combinedText ? objectReplacementChara
cterTextRun : textRun; |
| 728 FloatPoint emphasisMarkTextOrigin = combinedText ? FloatPoint(boxOri
gin.x() + boxRect.width() / 2, boxOrigin.y() + font.fontMetrics().ascent()) : te
xtOrigin; | 731 FloatPoint emphasisMarkTextOrigin = combinedText ? FloatPoint(boxOri
gin.x() + boxRect.width() / 2, boxOrigin.y() + font.fontMetrics().ascent()) : te
xtOrigin; |
| 729 if (combinedText) | 732 if (combinedText) |
| 730 context->concatCTM(rotation(boxRect, Clockwise)); | 733 context->concatCTM(rotation(boxRect, Clockwise)); |
| 731 | 734 |
| 732 if (!paintSelectedTextSeparately || ePos <= sPos) { | 735 if (!paintSelectedTextSeparately || ePos <= sPos) { |
| 733 // FIXME: Truncate right-to-left text correctly. | 736 // FIXME: Truncate right-to-left text correctly. |
| 734 paintTextWithShadows(context, combinedText ? combinedText->origi
nalFont() : font, emphasisMarkTextRun, emphasisMark, emphasisMarkOffset, 0, leng
th, length, emphasisMarkTextOrigin, boxRect, textShadow, textStrokeWidth > 0, is
Horizontal()); | 737 paintTextWithShadows(context, rendererToUse, combinedText ? comb
inedText->originalFont() : font, emphasisMarkTextRun, emphasisMark, emphasisMark
Offset, 0, length, length, emphasisMarkTextOrigin, boxRect, textShadow, textStro
keWidth > 0, isHorizontal()); |
| 735 } else | 738 } else { |
| 736 paintTextWithShadows(context, combinedText ? combinedText->origi
nalFont() : font, emphasisMarkTextRun, emphasisMark, emphasisMarkOffset, ePos, s
Pos, length, emphasisMarkTextOrigin, boxRect, textShadow, textStrokeWidth > 0, i
sHorizontal()); | 739 paintTextWithShadows(context, rendererToUse, combinedText ? comb
inedText->originalFont() : font, emphasisMarkTextRun, emphasisMark, emphasisMark
Offset, ePos, sPos, length, emphasisMarkTextOrigin, boxRect, textShadow, textStr
okeWidth > 0, isHorizontal()); |
| 740 } |
| 737 | 741 |
| 738 if (combinedText) | 742 if (combinedText) |
| 739 context->concatCTM(rotation(boxRect, Counterclockwise)); | 743 context->concatCTM(rotation(boxRect, Counterclockwise)); |
| 740 } | 744 } |
| 741 } | 745 } |
| 742 | 746 |
| 743 if ((paintSelectedTextOnly || paintSelectedTextSeparately) && sPos < ePos) { | 747 if ((paintSelectedTextOnly || paintSelectedTextSeparately) && sPos < ePos) { |
| 744 // paint only the text that is selected | 748 // paint only the text that is selected |
| 745 GraphicsContextStateSaver stateSaver(*context, selectionStrokeWidth > 0)
; | 749 GraphicsContextStateSaver stateSaver(*context, selectionStrokeWidth > 0)
; |
| 746 | 750 |
| 747 updateGraphicsContext(context, selectionFillColor, selectionStrokeColor,
selectionStrokeWidth); | 751 updateGraphicsContext(context, selectionFillColor, selectionStrokeColor,
selectionStrokeWidth); |
| 748 paintTextWithShadows(context, font, textRun, nullAtom, 0, sPos, ePos, le
ngth, textOrigin, boxRect, selectionShadow, selectionStrokeWidth > 0, isHorizont
al()); | 752 paintTextWithShadows(context, rendererToUse, font, textRun, nullAtom, 0,
sPos, ePos, length, textOrigin, boxRect, selectionShadow, selectionStrokeWidth
> 0, isHorizontal()); |
| 749 if (!emphasisMark.isEmpty()) { | 753 if (!emphasisMark.isEmpty()) { |
| 750 updateGraphicsContext(context, selectionEmphasisMarkColor, textStrok
eColor, textStrokeWidth); | 754 updateGraphicsContext(context, selectionEmphasisMarkColor, textStrok
eColor, textStrokeWidth); |
| 751 | 755 |
| 752 DEFINE_STATIC_LOCAL(TextRun, objectReplacementCharacterTextRun, (&ob
jectReplacementCharacter, 1)); | 756 DEFINE_STATIC_LOCAL(TextRun, objectReplacementCharacterTextRun, (&ob
jectReplacementCharacter, 1)); |
| 753 TextRun& emphasisMarkTextRun = combinedText ? objectReplacementChara
cterTextRun : textRun; | 757 TextRun& emphasisMarkTextRun = combinedText ? objectReplacementChara
cterTextRun : textRun; |
| 754 FloatPoint emphasisMarkTextOrigin = combinedText ? FloatPoint(boxOri
gin.x() + boxRect.width() / 2, boxOrigin.y() + font.fontMetrics().ascent()) : te
xtOrigin; | 758 FloatPoint emphasisMarkTextOrigin = combinedText ? FloatPoint(boxOri
gin.x() + boxRect.width() / 2, boxOrigin.y() + font.fontMetrics().ascent()) : te
xtOrigin; |
| 755 if (combinedText) | 759 if (combinedText) |
| 756 context->concatCTM(rotation(boxRect, Clockwise)); | 760 context->concatCTM(rotation(boxRect, Clockwise)); |
| 757 | 761 |
| 758 paintTextWithShadows(context, combinedText ? combinedText->originalF
ont() : font, emphasisMarkTextRun, emphasisMark, emphasisMarkOffset, sPos, ePos,
length, emphasisMarkTextOrigin, boxRect, selectionShadow, selectionStrokeWidth
> 0, isHorizontal()); | 762 paintTextWithShadows(context, rendererToUse, combinedText ? combined
Text->originalFont() : font, emphasisMarkTextRun, emphasisMark, emphasisMarkOffs
et, sPos, ePos, length, emphasisMarkTextOrigin, boxRect, selectionShadow, select
ionStrokeWidth > 0, isHorizontal()); |
| 759 | 763 |
| 760 if (combinedText) | 764 if (combinedText) |
| 761 context->concatCTM(rotation(boxRect, Counterclockwise)); | 765 context->concatCTM(rotation(boxRect, Counterclockwise)); |
| 762 } | 766 } |
| 763 } | 767 } |
| 764 | 768 |
| 765 // Paint decorations | 769 // Paint decorations |
| 766 TextDecoration textDecorations = styleToUse->textDecorationsInEffect(); | 770 TextDecoration textDecorations = styleToUse->textDecorationsInEffect(); |
| 767 if (textDecorations != TextDecorationNone && paintInfo.phase != PaintPhaseSe
lection) { | 771 if (textDecorations != TextDecorationNone && paintInfo.phase != PaintPhaseSe
lection) { |
| 768 updateGraphicsContext(context, textFillColor, textStrokeColor, textStrok
eWidth); | 772 updateGraphicsContext(context, textFillColor, textStrokeColor, textStrok
eWidth); |
| (...skipping 788 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1557 printedCharacters = fprintf(stderr, "\t%s %p", obj->renderName(), obj); | 1561 printedCharacters = fprintf(stderr, "\t%s %p", obj->renderName(), obj); |
| 1558 const int rendererCharacterOffset = 24; | 1562 const int rendererCharacterOffset = 24; |
| 1559 for (; printedCharacters < rendererCharacterOffset; printedCharacters++) | 1563 for (; printedCharacters < rendererCharacterOffset; printedCharacters++) |
| 1560 fputc(' ', stderr); | 1564 fputc(' ', stderr); |
| 1561 fprintf(stderr, "(%d,%d) \"%s\"\n", start(), start() + len(), value.utf8().d
ata()); | 1565 fprintf(stderr, "(%d,%d) \"%s\"\n", start(), start() + len(), value.utf8().d
ata()); |
| 1562 } | 1566 } |
| 1563 | 1567 |
| 1564 #endif | 1568 #endif |
| 1565 | 1569 |
| 1566 } // namespace WebCore | 1570 } // namespace WebCore |
| OLD | NEW |