diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2019-06-03 17:22:30 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2019-06-03 17:22:30 +0200 |
| commit | ad1747008cf520ce53020cfe9ee42957f73ce77c (patch) | |
| tree | 09bcf58e4b05bce373d326ef1555072a64eda648 /src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx | |
| parent | cb2d9c1212e295dbe2ca68e274ef4cca10cd11e5 (diff) | |
X11+Pango: fix case when function pango_font_get_glyph_extents() fails
Diffstat (limited to 'src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx')
| -rw-r--r-- | src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx | 6 |
1 files changed, 6 insertions, 0 deletions
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); + } } } |
