summaryrefslogtreecommitdiff
path: root/pango/pango-layout.c
diff options
context:
space:
mode:
Diffstat (limited to 'pango/pango-layout.c')
-rw-r--r--pango/pango-layout.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index 3f11d5b0..24a1a88b 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -5518,10 +5518,7 @@ pango_layout_get_empty_extents_and_height_at_index (PangoLayout *layout,
free_font_desc = TRUE;
}
- pango_attr_iterator_get_font (&iter,
- font_desc,
- NULL,
- NULL);
+ pango_attr_iterator_get_font (&iter, font_desc, NULL, NULL);
attr = pango_attr_iterator_get (&iter, PANGO_ATTR_LINE_HEIGHT);
if (attr)
@@ -5689,11 +5686,25 @@ pango_layout_run_get_extents_and_height (PangoLayoutRun *run,
if (height)
{
- if (!metrics)
- metrics = pango_font_get_metrics (run->item->analysis.font,
- run->item->analysis.language);
+ if (pango_analysis_get_size_font (&run->item->analysis))
+ {
+ PangoFontMetrics *height_metrics;
+
+ 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);
- *height = pango_font_metrics_get_height (metrics);
+ pango_font_metrics_unref (height_metrics);
+ }
+ else
+ {
+ if (!metrics)
+ metrics = pango_font_get_metrics (run->item->analysis.font,
+ run->item->analysis.language);
+
+ *height = pango_font_metrics_get_height (metrics);
+ }
}
y_offset = run->y_offset;