Evas textblock: Used eina_list_append_relative_list instead of eina_list_append_relative

in some places, which obviously made things way faster.

SVN revision: 57008
This commit is contained in:
Tom Hacohen 2011-02-14 09:37:49 +00:00
parent 97f30a8b6d
commit 4a3493030c
1 changed files with 10 additions and 9 deletions

View File

@ -1782,7 +1782,7 @@ struct _Ctxt
Eina_Bool align_auto; Eina_Bool align_auto;
}; };
static void _layout_text_add_logical_item(Ctxt *c, Evas_Object_Textblock_Text_Item *ti, const Evas_Object_Textblock_Item *rel); static void _layout_text_add_logical_item(Ctxt *c, Evas_Object_Textblock_Text_Item *ti, Eina_List *rel);
static void _text_item_update_sizes(Ctxt *c, Evas_Object_Textblock_Text_Item *ti); static void _text_item_update_sizes(Ctxt *c, Evas_Object_Textblock_Text_Item *ti);
/** /**
* @internal * @internal
@ -2429,13 +2429,14 @@ _layout_text_cutoff_get(Ctxt *c, Evas_Object_Textblock_Format *fmt,
* Cut the text up until cut and split * Cut the text up until cut and split
* *
* @param c the context to work on - Not NULL. * @param c the context to work on - Not NULL.
* @param it the item to cut - not null. * @param ti the item to cut - not null.
* @param lti the logical list item of the item.
* @param cut the cut index. * @param cut the cut index.
* @return the second (newly created) item. * @return the second (newly created) item.
*/ */
static Evas_Object_Textblock_Text_Item * static Evas_Object_Textblock_Text_Item *
_layout_item_text_split_strip_white(Ctxt *c, _layout_item_text_split_strip_white(Ctxt *c,
Evas_Object_Textblock_Text_Item *ti, int cut) Evas_Object_Textblock_Text_Item *ti, Eina_List *lti, int cut)
{ {
Eina_Unicode *ts; Eina_Unicode *ts;
Evas_Object_Textblock_Text_Item *new_ti = NULL, *white_ti = NULL; Evas_Object_Textblock_Text_Item *new_ti = NULL, *white_ti = NULL;
@ -2457,7 +2458,7 @@ _layout_item_text_split_strip_white(Ctxt *c,
evas_common_text_props_split(&ti->parent.text_props, evas_common_text_props_split(&ti->parent.text_props,
&new_ti->parent.text_props, cut2); &new_ti->parent.text_props, cut2);
_layout_text_add_logical_item(c, new_ti, _ITEM(ti)); _layout_text_add_logical_item(c, new_ti, lti);
} }
if (cut2 > cut) if (cut2 > cut)
@ -2471,7 +2472,7 @@ _layout_item_text_split_strip_white(Ctxt *c,
evas_common_text_props_split(&ti->parent.text_props, evas_common_text_props_split(&ti->parent.text_props,
&white_ti->parent.text_props, cut); &white_ti->parent.text_props, cut);
_layout_text_add_logical_item(c, white_ti, _ITEM(ti)); _layout_text_add_logical_item(c, white_ti, lti);
} }
if (new_ti || white_ti) if (new_ti || white_ti)
@ -2655,11 +2656,11 @@ _text_item_update_sizes(Ctxt *c, Evas_Object_Textblock_Text_Item *ti)
*/ */
static void static void
_layout_text_add_logical_item(Ctxt *c, Evas_Object_Textblock_Text_Item *ti, _layout_text_add_logical_item(Ctxt *c, Evas_Object_Textblock_Text_Item *ti,
const Evas_Object_Textblock_Item *rel) Eina_List *rel)
{ {
_text_item_update_sizes(c, ti); _text_item_update_sizes(c, ti);
c->par->logical_items = eina_list_append_relative( c->par->logical_items = eina_list_append_relative_list(
c->par->logical_items, ti, rel); c->par->logical_items, ti, rel);
} }
@ -3254,7 +3255,7 @@ _layout_visualize_par(Ctxt *c)
last_ti); last_ti);
if ((wrap > 0) && last_ti->text[wrap]) if ((wrap > 0) && last_ti->text[wrap])
{ {
_layout_item_text_split_strip_white(c, last_ti, _layout_item_text_split_strip_white(c, last_ti, i,
wrap); wrap);
} }
else if (wrap == 0) else if (wrap == 0)
@ -3336,7 +3337,7 @@ _layout_visualize_par(Ctxt *c)
if (wrap > 0) if (wrap > 0)
{ {
_layout_item_text_split_strip_white(c, ti, wrap); _layout_item_text_split_strip_white(c, ti, i, wrap);
} }
else if (wrap == 0) else if (wrap == 0)
{ {