Index: webkit/port/platform/graphics/chromium/SimpleFontDataLinux.cpp |
diff --git a/webkit/port/platform/graphics/chromium/SimpleFontDataLinux.cpp b/webkit/port/platform/graphics/chromium/SimpleFontDataLinux.cpp |
index 73712756078e6d2fd9b8d3a8b06f8e12c813e091..29b5d74dfd81a60685cb0f89aa511f35e1693198 100644 |
--- a/webkit/port/platform/graphics/chromium/SimpleFontDataLinux.cpp |
+++ b/webkit/port/platform/graphics/chromium/SimpleFontDataLinux.cpp |
@@ -29,17 +29,13 @@ void SimpleFontData::platformInit() |
m_font.setupPaint(&paint); |
paint.getFontMetrics(&metrics); |
- // use ceil instead of round to favor descent, given a lot of accidental |
- // clipping of descenders (e.g. 14pt 'g') in textedit fields |
- const int descent = SkScalarCeil(metrics.fDescent); |
- const int span = SkScalarRound(metrics.fDescent - metrics.fAscent); |
- const int ascent = span - descent; |
- |
- m_ascent = ascent; |
- m_descent = descent; |
+ // Beware those who step here: This code is designed to match Win32 font |
+ // metrics *exactly*. |
+ m_ascent = SkScalarCeil(-metrics.fAscent); |
+ m_descent = SkScalarCeil(metrics.fDescent); |
m_xHeight = SkScalarToFloat(-metrics.fAscent) * 0.56f; // hack I stole from the Windows port |
- m_lineSpacing = ascent + descent; |
- m_lineGap = SkScalarRound(metrics.fLeading); |
+ m_lineGap = SkScalarCeil(metrics.fLeading); |
+ m_lineSpacing = m_ascent + m_descent + m_lineGap; |
// In WebKit/WebCore/platform/graphics/SimpleFontData.cpp, m_spaceWidth is |
// calculated for us, but we need to calculate m_maxCharWidth and |