Index: ui/gfx/render_text_linux.cc |
diff --git a/ui/gfx/render_text_linux.cc b/ui/gfx/render_text_linux.cc |
index e6a1ab725e4cda13a895e29a6fd1decb587d60aa..004064d247a9d24671e3edfc072835e3fd849f52 100644 |
--- a/ui/gfx/render_text_linux.cc |
+++ b/ui/gfx/render_text_linux.cc |
@@ -83,12 +83,17 @@ Size RenderTextLinux::GetStringSize() { |
EnsureLayout(); |
int width = 0, height = 0; |
pango_layout_get_pixel_size(layout_, &width, &height); |
- return Size(width, height); |
+ // Keep a consistent height between this particular string's PangoLayout and |
+ // potentially larger text supported by the FontList. |
+ return Size(width, std::max(height, font_list().GetHeight())); |
} |
int RenderTextLinux::GetBaseline() { |
EnsureLayout(); |
- return PANGO_PIXELS(pango_layout_get_baseline(layout_)); |
+ // Keep a consistent baseline between this particular string's PangoLayout and |
+ // potentially larger text supported by the FontList. |
+ return std::max(PANGO_PIXELS(pango_layout_get_baseline(layout_)), |
+ font_list().GetBaseline()); |
} |
SelectionModel RenderTextLinux::FindCursorPosition(const Point& point) { |
@@ -364,8 +369,7 @@ void RenderTextLinux::DrawVisualText(Canvas* canvas) { |
DCHECK(layout_); |
// Skia will draw glyphs with respect to the baseline. |
- Vector2d offset(GetTextOffset() + |
- Vector2d(0, PANGO_PIXELS(pango_layout_get_baseline(layout_)))); |
+ Vector2d offset(GetTextOffset() + Vector2d(0, GetBaseline())); |
SkScalar x = SkIntToScalar(offset.x()); |
SkScalar y = SkIntToScalar(offset.y()); |