From b6b9a22500c3e760f7c05d6c1fd62ff1529dee1b Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 6 Apr 2009 19:47:40 -0400 Subject: [layout] When computing empty line extents, use both layout and context fontdesc By merging them. This is what happens for loading fonts in pango-context. We should do the same or we'll get zero-size fonts if layout has a font desc set with no size. --- pango/pango-layout.c | 23 ++++++++++++++--------- 1 file 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) -- cgit v1.2.1