From ad1747008cf520ce53020cfe9ee42957f73ce77c Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Mon, 3 Jun 2019 17:22:30 +0200 Subject: X11+Pango: fix case when function pango_font_get_glyph_extents() fails --- src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx index 584e128b1..cab1c43b0 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx @@ -1222,6 +1222,12 @@ void Fl_Xlib_Graphics_Driver::font_unscaled(Fl_Font fnum, Fl_Fontsize size) { pango_font_get_glyph_extents(pfont, /*PangoGlyph glyph*/'p', NULL, &logical_rect); fd->descent_ = PANGO_DESCENT(logical_rect)/PANGO_SCALE; fd->height_ = logical_rect.height/PANGO_SCALE; + if (fd->height_ == 0) { // this occurs with some fonts + PangoFontMetrics *pfmt = pango_font_get_metrics(pfont, pango_script_get_sample_language(PANGO_SCRIPT_LATIN) /* 1.4 */); + fd->descent_ = pango_font_metrics_get_descent(pfmt)/PANGO_SCALE; + fd->height_ = (pango_font_metrics_get_ascent(pfmt) + pango_font_metrics_get_descent(pfmt))/PANGO_SCALE ; + pango_font_metrics_unref(pfmt); + } } } -- cgit v1.2.3