forked from enlightenment/efl
edje/style: optimize updation of styles for a given text_style
Currently we do 2 pass updation. first we scan through all the styles and check if they have text_style which matches the test_style we need to update then we mark them dirty. then we call style_all_update() to go through the list again and update those styles. By combining them both in a single function we avoid scanning through the whole list again. Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9639
This commit is contained in:
parent
bc0bd4eb3f
commit
676835458f
|
@ -2788,7 +2788,7 @@ void _edje_message_del (Edje *ed);
|
||||||
|
|
||||||
void _edje_textblock_styles_add(Edje *ed, Edje_Real_Part *ep);
|
void _edje_textblock_styles_add(Edje *ed, Edje_Real_Part *ep);
|
||||||
void _edje_textblock_styles_del(Edje *ed, Edje_Part *pt);
|
void _edje_textblock_styles_del(Edje *ed, Edje_Part *pt);
|
||||||
void _edje_textblock_styles_cache_free(Edje *ed, const char *text_class);
|
void _edje_textblock_style_all_update_text_class(Edje *ed, const char *text_class);
|
||||||
void _edje_textblock_style_all_update(Edje *ed);
|
void _edje_textblock_style_all_update(Edje *ed);
|
||||||
void _edje_textblock_style_parse_and_fix(Edje_File *edf);
|
void _edje_textblock_style_parse_and_fix(Edje_File *edf);
|
||||||
void _edje_textblock_style_cleanup(Edje_File *edf);
|
void _edje_textblock_style_cleanup(Edje_File *edf);
|
||||||
|
|
|
@ -481,8 +481,7 @@ _efl_canvas_layout_efl_observer_update(Eo *obj EINA_UNUSED, Edje *ed, Efl_Object
|
||||||
}
|
}
|
||||||
else if (obs == _edje_text_class_member)
|
else if (obs == _edje_text_class_member)
|
||||||
{
|
{
|
||||||
_edje_textblock_styles_cache_free(ed, key);
|
_edje_textblock_style_all_update_text_class(ed, key);
|
||||||
_edje_textblock_style_all_update(ed);
|
|
||||||
#ifdef EDJE_CALC_CACHE
|
#ifdef EDJE_CALC_CACHE
|
||||||
ed->text_part_change = EINA_TRUE;
|
ed->text_part_change = EINA_TRUE;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -366,8 +366,12 @@ _edje_textblock_styles_del(Edje *ed, Edje_Part *pt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Finds all the styles having text class tag as text_class and
|
||||||
|
* updates them.
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
_edje_textblock_styles_cache_free(Edje *ed, const char *text_class)
|
_edje_textblock_style_all_update_text_class(Edje *ed, const char *text_class)
|
||||||
{
|
{
|
||||||
Eina_List *l, *ll;
|
Eina_List *l, *ll;
|
||||||
Edje_Style *stl;
|
Edje_Style *stl;
|
||||||
|
@ -387,7 +391,7 @@ _edje_textblock_styles_cache_free(Edje *ed, const char *text_class)
|
||||||
|
|
||||||
if (!strcmp(tag->text_class, text_class))
|
if (!strcmp(tag->text_class, text_class))
|
||||||
{
|
{
|
||||||
stl->cache = EINA_FALSE;
|
_edje_textblock_style_update(ed, stl, EINA_TRUE);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue