static int
_layout_par(Ctxt *c)
{
- Evas_Object_Textblock_Item *it;
+ Evas_Object_Textblock_Item *it, *prev_it;
Eina_List *i;
int ret = 0;
int wrap = -1;
Eina_Bool item_preadv = EINA_FALSE;
Evas_Textblock_Obstacle *obs = NULL;
c->par->last_fw = 0;
+ it = NULL;
for (i = c->par->logical_items ; i ; )
{
Evas_Coord prevdescent = 0, prevascent = 0;
Evas_Coord needed_w = 0;
/* END */
+ prev_it = it;
it = _ITEM(eina_list_data_get(i));
/* Skip visually deleted items */
if (it->visually_deleted ||
else if (wrap == 0)
{
/* Should wrap before the item */
+ if (prev_it && (prev_it->type == EVAS_TEXTBLOCK_ITEM_TEXT))
+ {
+ _layout_item_text_split_strip_white(c,
+ _ITEM_TEXT(prev_it), eina_list_prev(i),
+ _ITEM_TEXT(prev_it)->text_props.text_len);
+ }
/* We didn't end up using the item, so revert the ascent
* and descent changes. */
fail_if(!it);
rects = eina_iterator_container_get(it);
fail_if(!rects);
- ck_assert_int_eq(eina_list_count(rects), 3);
+ ck_assert_int_eq(eina_list_count(rects), 2);
{
- Evas_Coord y1, y2;
+ Evas_Coord x1, y1, x2, y2;
void *tmp = tr;
- /* We have 3 rectangles */
+ /* We have 2 rectangles */
Eina_Iterator *itr = it;
fail_if (!eina_iterator_next(itr, &tmp));
tr = tmp;
+ x1 = tr->x;
y1 = tr->y;
fail_if (!eina_iterator_next(itr, &tmp));
tr = tmp;
+ x2 = tr->x;
y2 = tr->y;
- /* Basically it means that the "extending" rectangle should not somehow
- * reach the second line in this example. */
- ck_assert_int_eq(y1, y2);
+ /* These rectangles must be placed without overlapping.
+ * In this test case, we expect to see a rect for each line. */
+ fail_if((x1 == x2) && (y1 == y2));
+ ck_assert_int_ne(y1, y2);
eina_iterator_free(it);
}