forked from enlightenment/efl
evas textblock: use primary font's size as minimum size of a line
Summary: Textblock uses ascent, descent from primary font when there is no text. If a text is set which need other font, Textblock uses ascent, descent from actually loaded font. If loaded font has smaller size, text cursor and text looks jerky in elm_entry. At least, primary font's size should be respected as minimum size of a line for avoiding this issue. In addition, the patch will allow negative line gap values. @fix Test Plan: Put your hamburger(🍔) in Ecrire. And put an english character. (Put a text which will load smaller font. And put a text which will load primary font.) Reviewers: raster, cedric, herdsman, jpeg, woohyun Reviewed By: raster Differential Revision: https://phab.enlightenment.org/D5217
This commit is contained in:
parent
1750410650
commit
4d4401f3a6
|
@ -2937,8 +2937,8 @@ _layout_format_ascent_descent_adjust(Evas_Object_Protected_Data *obj,
|
|||
}
|
||||
descent += fmt->linegap * obj->cur->scale;
|
||||
descent += ((ascent + descent) * fmt->linerelgap);
|
||||
if (*maxascent < ascent) *maxascent = ascent;
|
||||
if (*maxdescent < descent) *maxdescent = descent;
|
||||
*maxascent = ascent;
|
||||
*maxdescent = descent;
|
||||
if (fmt->linefill > 0.0)
|
||||
{
|
||||
int dh;
|
||||
|
@ -2974,18 +2974,13 @@ _layout_item_max_ascent_descent_calc(Evas_Object_Protected_Data *obj,
|
|||
{
|
||||
Evas_Coord asc = 0;
|
||||
|
||||
*maxascent = ENFN->font_max_ascent_get(ENC, it->format->font.font);
|
||||
|
||||
if (fi)
|
||||
{
|
||||
asc = evas_common_font_instance_max_ascent_get(fi);
|
||||
}
|
||||
else
|
||||
{
|
||||
asc = ENFN->font_max_ascent_get(ENC,
|
||||
it->format->font.font);
|
||||
}
|
||||
asc = evas_common_font_instance_max_ascent_get(fi);
|
||||
|
||||
if (asc > *maxascent)
|
||||
*maxascent = asc;
|
||||
*maxascent = asc;
|
||||
}
|
||||
|
||||
if ((position == TEXTBLOCK_POSITION_END) ||
|
||||
|
@ -2994,18 +2989,13 @@ _layout_item_max_ascent_descent_calc(Evas_Object_Protected_Data *obj,
|
|||
/* Calculate max descent. */
|
||||
Evas_Coord desc = 0;
|
||||
|
||||
*maxdescent = ENFN->font_max_descent_get(ENC, it->format->font.font);
|
||||
|
||||
if (fi)
|
||||
{
|
||||
desc = evas_common_font_instance_max_descent_get(fi);
|
||||
}
|
||||
else
|
||||
{
|
||||
desc = ENFN->font_max_descent_get(ENC,
|
||||
it->format->font.font);
|
||||
}
|
||||
desc = evas_common_font_instance_max_descent_get(fi);
|
||||
|
||||
if (desc > *maxdescent)
|
||||
*maxdescent = desc;
|
||||
*maxdescent = desc;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3042,23 +3032,25 @@ _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);
|
||||
}
|
||||
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;
|
||||
if (asc > *ascent) *ascent = asc;
|
||||
if (desc > *descent) *descent = desc;
|
||||
}
|
||||
|
||||
if (fmt) _layout_format_ascent_descent_adjust(obj, ascent, descent, fmt);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue