| Index: app/gfx/canvas_linux.cc
|
| diff --git a/app/gfx/canvas_linux.cc b/app/gfx/canvas_linux.cc
|
| index e658c6ac184878f5deffe17d4d06ced77851788d..223c1a9822416ebc96e40c798850a779a15002b0 100755
|
| --- a/app/gfx/canvas_linux.cc
|
| +++ b/app/gfx/canvas_linux.cc
|
| @@ -185,6 +185,9 @@ void Canvas::DrawStringInt(const std::wstring& text,
|
| int width, height;
|
| pango_layout_get_pixel_size(layout, &width, &height);
|
|
|
| + cairo_rectangle(cr, x, y, width, height);
|
| + cairo_clip(cr);
|
| +
|
| if (flags & Canvas::TEXT_VALIGN_TOP) {
|
| // Cairo should draw from the top left corner already.
|
| } else if (flags & Canvas::TEXT_VALIGN_BOTTOM) {
|
| @@ -194,11 +197,16 @@ void Canvas::DrawStringInt(const std::wstring& text,
|
| y += ((h - height) / 2);
|
| }
|
|
|
| - cairo_rectangle(cr, x, y, w, h);
|
| - cairo_clip(cr);
|
| -
|
| cairo_move_to(cr, x, y);
|
| pango_cairo_show_layout(cr, layout);
|
| + if (font.style() & gfx::Font::UNDERLINED) {
|
| + double underline_y =
|
| + static_cast<double>(y) + height + font.underline_position();
|
| + cairo_set_line_width(cr, font.underline_thickness());
|
| + cairo_move_to(cr, x, underline_y);
|
| + cairo_line_to(cr, x + width, underline_y);
|
| + cairo_stroke(cr);
|
| + }
|
| cairo_restore(cr);
|
|
|
| g_object_unref(layout);
|
|
|