Index: Source/core/rendering/InlineTextBox.cpp |
diff --git a/Source/core/rendering/InlineTextBox.cpp b/Source/core/rendering/InlineTextBox.cpp |
index a1a2eff99e6a42141691a7c883c646252c347d73..0001b6a19485d03fc63a81eb83078382e0b201a1 100644 |
--- a/Source/core/rendering/InlineTextBox.cpp |
+++ b/Source/core/rendering/InlineTextBox.cpp |
@@ -937,7 +937,6 @@ static StrokeStyle textDecorationStyleToStrokeStyle(TextDecorationStyle decorati |
case TextDecorationStyleSolid: |
strokeStyle = SolidStroke; |
break; |
-#if ENABLE(CSS3_TEXT) |
case TextDecorationStyleDouble: |
strokeStyle = DoubleStroke; |
break; |
@@ -950,7 +949,6 @@ static StrokeStyle textDecorationStyleToStrokeStyle(TextDecorationStyle decorati |
case TextDecorationStyleWavy: |
strokeStyle = WavyStroke; |
break; |
-#endif // CSS3_TEXT |
} |
return strokeStyle; |
@@ -983,7 +981,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); |
@@ -1105,7 +1102,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, TextDecoration deco, TextDecorationStyle decorationStyle, const ShadowData* shadow) |
{ |
@@ -1173,16 +1169,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 & TextDecorationUnderline) { |
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: { |
@@ -1197,14 +1194,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 & TextDecorationOverline) { |
context->setStrokeColor(overline, colorSpace); |
-#if ENABLE(CSS3_TEXT) |
switch (decorationStyle) { |
case TextDecorationStyleWavy: { |
FloatPoint start(localOrigin.x(), localOrigin.y() - doubleOffset); |
@@ -1213,17 +1205,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 & TextDecorationLineThrough) { |
context->setStrokeColor(linethrough, colorSpace); |
-#if ENABLE(CSS3_TEXT) |
switch (decorationStyle) { |
case TextDecorationStyleWavy: { |
FloatPoint start(localOrigin.x(), localOrigin.y() + 2 * baseline / 3); |
@@ -1232,13 +1220,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); |
} |