[pango/layout-font-scale] layout: Fix line height computations
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango/layout-font-scale] layout: Fix line height computations
- Date: Wed, 7 Sep 2022 02:40:23 +0000 (UTC)
commit 1724333e6a8bb0c267b7f201ea2c3a891d2916c2
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Sep 6 22:38:46 2022 -0400
layout: Fix line height computations
We were using the font metrics height, which is
scaled by the ctm, so we need to take the font
scale factors into account here.
Fixes: #691
pango/pango-layout.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index 065f85a1b..a1c472039 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -5695,21 +5695,26 @@ pango_layout_run_get_extents_and_height (PangoLayoutRun *run,
if (pango_analysis_get_size_font (&run->item->analysis))
{
PangoFontMetrics *height_metrics;
+ double xscale, yscale;
height_metrics = pango_font_get_metrics (pango_analysis_get_size_font (&run->item->analysis),
run->item->analysis.language);
- *height = pango_font_metrics_get_height (height_metrics);
+ pango_font_get_scale_factors (pango_analysis_get_size_font (&run->item->analysis), &xscale,
&yscale);
+ *height = pango_font_metrics_get_height (height_metrics) * MAX (xscale, yscale);
pango_font_metrics_unref (height_metrics);
}
else
{
+ double xscale, yscale;
+
if (!metrics)
metrics = pango_font_get_metrics (run->item->analysis.font,
run->item->analysis.language);
- *height = pango_font_metrics_get_height (metrics);
+ pango_font_get_scale_factors (run->item->analysis.font, &xscale, &yscale);
+ *height = pango_font_metrics_get_height (metrics) * MAX (xscale, yscale);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]