hexchat/163608d7fd861c2c4911a38f45be484c88626bdc.patch
DistroBaker 69343412de Merged update from upstream sources
This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/hexchat.git#1958b642ce255e92013559898fbfeb591524326c
2021-02-06 17:53:30 +00:00

49 lines
1.6 KiB
Diff

From 163608d7fd861c2c4911a38f45be484c88626bdc Mon Sep 17 00:00:00 2001
From: John Levon <levon@movementarian.org>
Date: Mon, 7 Sep 2020 17:53:31 +0100
Subject: [PATCH] Use pango_font_metrics_get_height() to calculate font height
(#2500)
---
src/fe-gtk/xtext.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/src/fe-gtk/xtext.c b/src/fe-gtk/xtext.c
index fac0c4e6d..418bb4da5 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);