Evas textblock: Clean up ellipsis handling code.

This cleans up the previous commit a bit by isolating the calculation
code and using a temporary descriptively named variable for the calculation.
This commit is contained in:
Tom Hacohen 2016-01-04 15:09:16 +00:00
parent 3252e3bf78
commit ebe09c4854
1 changed files with 22 additions and 12 deletions

View File

@ -5227,7 +5227,12 @@ _layout_par(Ctxt *c)
* fast path. * fast path.
* Other values of 0.0 <= ellipsis < 1.0 are handled in * Other values of 0.0 <= ellipsis < 1.0 are handled in
* _layout_par_ellipsis_items */ * _layout_par_ellipsis_items */
int ellip_h_thresh = 0;
/* Calculate ellipsis threshold height. */
{
int ascent = 0, descent = 0, maxasc = 0, maxdesc = 0; int ascent = 0, descent = 0, maxasc = 0, maxdesc = 0;
_layout_item_ascent_descent_adjust(c->obj, &ascent, &descent, _layout_item_ascent_descent_adjust(c->obj, &ascent, &descent,
it, it->format); it, it->format);
@ -5241,8 +5246,13 @@ _layout_par(Ctxt *c)
if (ascent > maxasc) maxasc = ascent; if (ascent > maxasc) maxasc = ascent;
if (descent > maxdesc) maxdesc = descent; if (descent > maxdesc) maxdesc = descent;
/* The ascent/descent of this item + the ascent descent of
* the next item as if it was the last. */
ellip_h_thresh = ascent + descent + maxasc + maxdesc;
}
if ((it->format->ellipsis == 1.0) && (c->h >= 0) && if ((it->format->ellipsis == 1.0) && (c->h >= 0) &&
((ascent + descent + maxasc + maxdesc + c->y > ((c->y + ellip_h_thresh >
c->h - c->o->style_pad.t - c->o->style_pad.b) || c->h - c->o->style_pad.t - c->o->style_pad.b) ||
(!it->format->wrap_word && !it->format->wrap_char && (!it->format->wrap_word && !it->format->wrap_char &&
!it->format->wrap_mixed && !it->format->wrap_hyphenation))) !it->format->wrap_mixed && !it->format->wrap_hyphenation)))