| Index: Source/core/rendering/InlineTextBox.cpp
|
| diff --git a/Source/core/rendering/InlineTextBox.cpp b/Source/core/rendering/InlineTextBox.cpp
|
| index c5eff52094f0522dfb3d31262b97788995e9e592..f9082487d529c95ed2706aa2e3838e306f012d84 100644
|
| --- a/Source/core/rendering/InlineTextBox.cpp
|
| +++ b/Source/core/rendering/InlineTextBox.cpp
|
| @@ -916,12 +916,11 @@ static StrokeStyle textDecorationStyleToStrokeStyle(TextDecorationStyle decorati
|
| return strokeStyle;
|
| }
|
|
|
| -#if ENABLE(CSS3_TEXT)
|
| -static int computeUnderlineOffset(const TextUnderlinePosition underlinePosition, const FontMetrics& fontMetrics, const InlineTextBox* inlineTextBox, const int textDecorationThickness)
|
| +static int computeUnderlineOffset(const TextUnderlinePosition underlinePosition, const FontMetrics& fontMetrics, const InlineTextBox* inlineTextBox, const float textDecorationThickness)
|
| {
|
| // Compute the gap between the font and the underline. Use at least one
|
| // pixel gap, if underline is thick then use a bigger gap.
|
| - const int gap = max<int>(1, ceilf(textDecorationThickness / 2.0));
|
| + const int gap = std::max<int>(1, ceilf(textDecorationThickness / 2.f));
|
|
|
| // According to the specification TextUnderlinePositionAuto should default to 'alphabetic' for horizontal text
|
| // and to 'under Left' for vertical text (e.g. japanese). We support only horizontal text for now.
|
| @@ -941,7 +940,6 @@ static int computeUnderlineOffset(const TextUnderlinePosition underlinePosition,
|
| ASSERT_NOT_REACHED();
|
| return fontMetrics.ascent() + gap;
|
| }
|
| -#endif // CSS3_TEXT
|
|
|
| static void adjustStepToDecorationLength(float& step, float& controlPointDistance, float length)
|
| {
|
| @@ -1069,8 +1067,6 @@ void InlineTextBox::paintDecoration(GraphicsContext* context, const FloatPoint&
|
| {
|
| GraphicsContextStateSaver stateSaver(*context);
|
|
|
| - float textDecorationThickness = 1.f;
|
| -
|
| if (m_truncation == cFullTruncation)
|
| return;
|
|
|
| @@ -1100,7 +1096,7 @@ void InlineTextBox::paintDecoration(GraphicsContext* context, const FloatPoint&
|
| size_t shadowCount = shadowList ? shadowList->shadows().size() : 0;
|
| // Set the thick of the line to be 10% (or something else ?)of the computed font size and not less than 1px.
|
| // Using computedFontSize should take care of zoom as well.
|
| - textDecorationThickness = max(textDecorationThickness, styleToUse->computedFontSize() / 10.0f);
|
| + const float textDecorationThickness = std::max(1.f, styleToUse->computedFontSize() / 10.f);
|
| context->setStrokeThickness(textDecorationThickness);
|
|
|
| int extraOffset = 0;
|
| @@ -1140,13 +1136,7 @@ void InlineTextBox::paintDecoration(GraphicsContext* context, const FloatPoint&
|
| context->setStrokeStyle(textDecorationStyleToStrokeStyle(decorationStyle));
|
| if (deco & TextDecorationUnderline) {
|
| context->setStrokeColor(underline);
|
| -#if ENABLE(CSS3_TEXT)
|
| - TextUnderlinePosition underlinePosition = styleToUse->textUnderlinePosition();
|
| - const int underlineOffset = computeUnderlineOffset(underlinePosition, styleToUse->fontMetrics(), this, textDecorationThickness);
|
| -#else
|
| - const int underlineOffset = styleToUse->fontMetrics().ascent() + max<int>(1, ceilf(textDecorationThickness / 2.0));
|
| -#endif // CSS3_TEXT
|
| -
|
| + const int underlineOffset = computeUnderlineOffset(styleToUse->textUnderlinePosition(), styleToUse->fontMetrics(), this, textDecorationThickness);
|
| switch (decorationStyle) {
|
| case TextDecorationStyleWavy: {
|
| FloatPoint start(localOrigin.x(), localOrigin.y() + underlineOffset + doubleOffset);
|
|
|