* fast path.
* Other values of 0.0 <= ellipsis < 1.0 are handled in
* _layout_par_ellipsis_items */
+ int ascent = 0, descent = 0, maxasc = 0, maxdesc = 0;
+ _layout_item_ascent_descent_adjust(c->obj, &ascent, &descent,
+ it, it->format);
+
+ if (c->position == TEXTBLOCK_POSITION_START)
+ _layout_item_max_ascent_descent_calc(c->obj, &maxasc, &maxdesc,
+ it, TEXTBLOCK_POSITION_SINGLE);
+ else
+ _layout_item_max_ascent_descent_calc(c->obj, &maxasc, &maxdesc,
+ it, TEXTBLOCK_POSITION_END);
+
+ if (ascent > maxasc) maxasc = ascent;
+ if (descent > maxdesc) maxdesc = descent;
+
if ((it->format->ellipsis == 1.0) && (c->h >= 0) &&
- ((2 * it->h + c->y >
+ ((ascent + descent + maxasc + maxdesc + c->y >
c->h - c->o->style_pad.t - c->o->style_pad.b) ||
(!it->format->wrap_word && !it->format->wrap_char &&
!it->format->wrap_mixed)))
ck_assert_int_eq(bret, ret);
}
+ /* Check that unnecessary ellipsis is not applied */
+ evas_object_textblock_text_markup_set(tb, "This is test for ellipsis with formatted height.");
+ evas_textblock_cursor_format_prepend(cur, "+ wrap=mixed");
+ evas_object_resize(tb, 100, 100);
+ evas_object_textblock_size_formatted_get(tb, NULL, &bh);
+ evas_object_resize(tb, 100, bh);
+ evas_textblock_cursor_format_prepend(cur, "+ wrap=mixed ellipsis=1.0");
+ evas_object_textblock_size_formatted_get(tb, NULL, &h);
+ ck_assert_int_ge(h, bh);
+
END_TB_TEST();
}
END_TEST