| Index: Source/core/rendering/InlineTextBox.cpp
|
| diff --git a/Source/core/rendering/InlineTextBox.cpp b/Source/core/rendering/InlineTextBox.cpp
|
| index e414189dbebc94590f08c23373f4b4cb6e49a0d3..930eef0f8c963713351daf19e25c42c6c6a58586 100644
|
| --- a/Source/core/rendering/InlineTextBox.cpp
|
| +++ b/Source/core/rendering/InlineTextBox.cpp
|
| @@ -924,7 +924,6 @@ static StrokeStyle textDecorationStyleToStrokeStyle(TextDecorationStyle decorati
|
| case TextDecorationStyleSolid:
|
| strokeStyle = SolidStroke;
|
| break;
|
| -#if ENABLE(CSS3_TEXT)
|
| case TextDecorationStyleDouble:
|
| strokeStyle = DoubleStroke;
|
| break;
|
| @@ -937,7 +936,6 @@ static StrokeStyle textDecorationStyleToStrokeStyle(TextDecorationStyle decorati
|
| case TextDecorationStyleWavy:
|
| strokeStyle = WavyStroke;
|
| break;
|
| -#endif // CSS3_TEXT
|
| }
|
|
|
| return strokeStyle;
|
| @@ -970,7 +968,6 @@ static int computeUnderlineOffset(const TextUnderlinePosition underlinePosition,
|
| }
|
| #endif // CSS3_TEXT
|
|
|
| -#if ENABLE(CSS3_TEXT)
|
| static void adjustStepToDecorationLength(float& step, float& controlPointDistance, float length)
|
| {
|
| ASSERT(step > 0);
|
| @@ -1092,7 +1089,6 @@ static void strokeWavyTextDecoration(GraphicsContext* context, FloatPoint& p1, F
|
| context->setShouldAntialias(true);
|
| context->strokePath(path);
|
| }
|
| -#endif // CSS3_TEXT
|
|
|
| void InlineTextBox::paintDecoration(GraphicsContext* context, const FloatPoint& boxOrigin, ETextDecoration deco, TextDecorationStyle decorationStyle, const ShadowData* shadow)
|
| {
|
| @@ -1163,16 +1159,17 @@ void InlineTextBox::paintDecoration(GraphicsContext* context, const FloatPoint&
|
| shadow = shadow->next();
|
| }
|
|
|
| -#if ENABLE(CSS3_TEXT)
|
| // Offset between lines - always non-zero, so lines never cross each other.
|
| float doubleOffset = textDecorationThickness + 1.f;
|
| -#endif // CSS3_TEXT
|
| context->setStrokeStyle(textDecorationStyleToStrokeStyle(decorationStyle));
|
| if (deco & UNDERLINE) {
|
| context->setStrokeColor(underline, colorSpace);
|
| #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
|
|
|
| switch (decorationStyle) {
|
| case TextDecorationStyleWavy: {
|
| @@ -1187,14 +1184,9 @@ void InlineTextBox::paintDecoration(GraphicsContext* context, const FloatPoint&
|
| if (decorationStyle == TextDecorationStyleDouble)
|
| context->drawLineForText(FloatPoint(localOrigin.x(), localOrigin.y() + underlineOffset + doubleOffset), width, isPrinting);
|
| }
|
| -#else
|
| - // Leave one pixel of white between the baseline and the underline.
|
| - context->drawLineForText(FloatPoint(localOrigin.x(), localOrigin.y() + baseline + 1), width, isPrinting);
|
| -#endif // CSS3_TEXT
|
| }
|
| if (deco & OVERLINE) {
|
| context->setStrokeColor(overline, colorSpace);
|
| -#if ENABLE(CSS3_TEXT)
|
| switch (decorationStyle) {
|
| case TextDecorationStyleWavy: {
|
| FloatPoint start(localOrigin.x(), localOrigin.y() - doubleOffset);
|
| @@ -1203,17 +1195,13 @@ void InlineTextBox::paintDecoration(GraphicsContext* context, const FloatPoint&
|
| break;
|
| }
|
| default:
|
| -#endif // CSS3_TEXT
|
| context->drawLineForText(localOrigin, width, isPrinting);
|
| -#if ENABLE(CSS3_TEXT)
|
| if (decorationStyle == TextDecorationStyleDouble)
|
| context->drawLineForText(FloatPoint(localOrigin.x(), localOrigin.y() - doubleOffset), width, isPrinting);
|
| }
|
| -#endif // CSS3_TEXT
|
| }
|
| if (deco & LINE_THROUGH) {
|
| context->setStrokeColor(linethrough, colorSpace);
|
| -#if ENABLE(CSS3_TEXT)
|
| switch (decorationStyle) {
|
| case TextDecorationStyleWavy: {
|
| FloatPoint start(localOrigin.x(), localOrigin.y() + 2 * baseline / 3);
|
| @@ -1222,13 +1210,10 @@ void InlineTextBox::paintDecoration(GraphicsContext* context, const FloatPoint&
|
| break;
|
| }
|
| default:
|
| -#endif // CSS3_TEXT
|
| context->drawLineForText(FloatPoint(localOrigin.x(), localOrigin.y() + 2 * baseline / 3), width, isPrinting);
|
| -#if ENABLE(CSS3_TEXT)
|
| if (decorationStyle == TextDecorationStyleDouble)
|
| context->drawLineForText(FloatPoint(localOrigin.x(), localOrigin.y() + doubleOffset + 2 * baseline / 3), width, isPrinting);
|
| }
|
| -#endif // CSS3_TEXT
|
| }
|
| } while (shadow);
|
|
|
|
|