summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2009-04-06 19:47:40 -0400
committerBehdad Esfahbod <behdad@behdad.org>2009-04-06 19:47:40 -0400
commitb6b9a22500c3e760f7c05d6c1fd62ff1529dee1b (patch)
tree160f862e46407afa832950f1aa49d0a5ec8daf1a
parent5ea040faf98de83101d50d1dfa141cdaf0cc5c2f (diff)
downloadpango-b6b9a22500c3e760f7c05d6c1fd62ff1529dee1b.tar.gz
[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.
-rw-r--r--pango/pango-layout.c23
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)