diff options
author | Matthias Clasen <mclasen@redhat.com> | 2022-09-06 22:38:46 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2022-09-06 22:38:46 -0400 |
commit | 1724333e6a8bb0c267b7f201ea2c3a891d2916c2 (patch) | |
tree | 82e66be8d63d526471480bcdfb24d1aa7a48f0c9 /pango | |
parent | eb973b9bdfd11467f63f1626f16d5d4005eb82a7 (diff) | |
download | pango-1724333e6a8bb0c267b7f201ea2c3a891d2916c2.tar.gz |
layout: Fix line height computationslayout-font-scale
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
Diffstat (limited to 'pango')
-rw-r--r-- | pango/pango-layout.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/pango/pango-layout.c b/pango/pango-layout.c index 065f85a1..a1c47203 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); } } |