Evas textblock: fix ascent/descent calc

This is a follow-up to 4d4401f3a6.
The format line adjustment (e.g. linegap) should calculate the current
item's ascent/descent, and then update c->ascent/c->descent.
Otherwise we accumulate calculations like linegap values

ref D5217
This commit is contained in:
Daniel Hirt 2017-09-26 10:38:46 +03:00
parent d567faa778
commit bfa7d2a3b2
1 changed files with 10 additions and 13 deletions

View File

@ -3032,25 +3032,22 @@ _layout_item_ascent_descent_adjust(Evas_Object_Protected_Data *obj,
}
}
if (fmt)
{
asc = ENFN->font_ascent_get(ENC, fmt->font.font);
desc = ENFN->font_descent_get(ENC, fmt->font.font);
if (asc > *ascent) *ascent = asc;
if (desc > *descent) *descent = desc;
}
if (fi)
{
asc = evas_common_font_instance_ascent_get(fi);
desc = evas_common_font_instance_descent_get(fi);
if (asc > *ascent) *ascent = asc;
if (desc > *descent) *descent = desc;
}
if (fmt) _layout_format_ascent_descent_adjust(obj, ascent, descent, fmt);
else if (fmt)
{
asc = ENFN->font_ascent_get(ENC, fmt->font.font);
desc = ENFN->font_descent_get(ENC, fmt->font.font);
}
if (fmt) _layout_format_ascent_descent_adjust(obj, &asc, &desc, fmt);
if (asc > *ascent) *ascent = asc;
if (desc > *descent) *descent = desc;
}
/**