diff options
-rw-r--r-- | pango/pango-layout.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/pango/pango-layout.c b/pango/pango-layout.c index 364e4537..b1b75a4f 100644 --- a/pango/pango-layout.c +++ b/pango/pango-layout.c @@ -4343,6 +4343,15 @@ pango_layout_get_empty_extents_at_index (PangoLayout *layout, PangoFontDescription *font_desc = NULL; gboolean free_font_desc = FALSE; + font_desc = pango_context_get_font_description (layout->context); + + if (layout->font_desc) + { + font_desc = pango_font_description_copy_static (font_desc); + pango_font_description_merge (font_desc, layout->font_desc, TRUE); + free_font_desc = TRUE; + } + /* Find the font description for this line */ if (layout->attrs) @@ -4363,8 +4372,11 @@ pango_layout_get_empty_extents_at_index (PangoLayout *layout, else base_font_desc = pango_context_get_font_description (layout->context); - font_desc = pango_font_description_copy_static (base_font_desc); - free_font_desc = TRUE; + if (!free_font_desc) + { + font_desc = pango_font_description_copy_static (font_desc); + free_font_desc = TRUE; + } pango_attr_iterator_get_font (iter, font_desc, @@ -4379,13 +4391,6 @@ pango_layout_get_empty_extents_at_index (PangoLayout *layout, pango_attr_iterator_destroy (iter); } - else - { - if (layout->font_desc) - font_desc = layout->font_desc; - else - font_desc = pango_context_get_font_description (layout->context); - } font = pango_context_load_font (layout->context, font_desc); if (font) |