diff options
author | John Levon <levon@movementarian.org> | 2020-09-07 17:53:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-07 18:53:31 +0200 |
commit | 163608d7fd861c2c4911a38f45be484c88626bdc (patch) | |
tree | d62a0e662bc44165e48fb45101e1bf20cbf15760 /src/fe-gtk | |
parent | 71eb79fee4881a9ad06012a642b8deb3b4453c77 (diff) |
Use pango_font_metrics_get_height() to calculate font height (#2500)
Diffstat (limited to 'src/fe-gtk')
-rw-r--r-- | src/fe-gtk/xtext.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/fe-gtk/xtext.c b/src/fe-gtk/xtext.c index fac0c4e6..418bb4da 100644 --- a/src/fe-gtk/xtext.c +++ b/src/fe-gtk/xtext.c @@ -283,8 +283,24 @@ backend_font_open (GtkXText *xtext, char *name) metrics = pango_context_get_metrics (context, xtext->font->font, lang); xtext->font->ascent = pango_font_metrics_get_ascent (metrics) / PANGO_SCALE; xtext->font->descent = pango_font_metrics_get_descent (metrics) / PANGO_SCALE; + + /* + * In later versions of pango, a font's height should be calculated like + * this to account for line gap; a typical symptom of not doing so is + * cutting off the underscore on some fonts. + */ +#if PANGO_VERSION_CHECK(1, 44, 0) + xtext->fontsize = pango_font_metrics_get_height (metrics) / PANGO_SCALE + 1; + + if (xtext->fontsize == 0) + xtext->fontsize = xtext->font->ascent + xtext->font->descent; +#else + xtext->fontsize = xtext->font->ascent + xtext->font->descent; +#endif + pango_font_metrics_unref (metrics); } + static int backend_get_text_width_emph (GtkXText *xtext, guchar *str, int len, int emphasis) { @@ -3479,8 +3495,6 @@ gtk_xtext_set_font (GtkXText *xtext, char *name) if (xtext->font == NULL) return FALSE; - xtext->fontsize = xtext->font->ascent + xtext->font->descent; - { char *time_str; int stamp_size = xtext_get_stamp_str (time(0), &time_str); |