diff options
-rw-r--r-- | vcl/unx/generic/gdi/cairotextrender.cxx | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/vcl/unx/generic/gdi/cairotextrender.cxx b/vcl/unx/generic/gdi/cairotextrender.cxx index 574f985f3f85..fbac5f322729 100644 --- a/vcl/unx/generic/gdi/cairotextrender.cxx +++ b/vcl/unx/generic/gdi/cairotextrender.cxx @@ -328,7 +328,8 @@ void CairoTextRender::DrawServerFontLayout( const GenericSalLayout& rLayout, con // the glyph’s baseline. cairo_text_extents_t aExt; cairo_glyph_extents(cr, &cairo_glyphs[nStartIndex], nLen, &aExt); - cairo_glyphs[nStartIndex].y += aExt.x_advance - aExt.height - aExt.y_bearing; + double nDescender = std::fmax(aExt.height + aExt.y_bearing, 0); + ydiff = (aExt.x_advance - nDescender) / nHeight; } else { |