diff options
author | SangHyeon Lee <sh10233.lee@samsung.com> | 2017-06-12 10:13:02 -0700 |
---|---|---|
committer | Cedric Bail <cedric@osg.samsung.com> | 2017-06-12 10:13:05 -0700 |
commit | d1a5df70558a792791d04091ff14feef60ea3bae (patch) | |
tree | f5beec5d62e397e15262c3ca01c21e2774f27a12 | |
parent | 79f36418ef6dcb340779d83c0f67d9fc92179b0c (diff) | |
download | efl-d1a5df70558a792791d04091ff14feef60ea3bae.tar.gz |
elementary: fix recursive content group calculation in genlist
Summary:
There are several problem is left on recursize content calc.
previously genlist only calculate size of layout class,
but after recursive content group calculation patch,
layout couldn't get proper size because sizing eval is
not pre-processed.
Test Plan: elementary test working fine.
Reviewers: jpeg, cedric, raster, conr2d
Differential Revision: https://phab.enlightenment.org/D4952
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
-rw-r--r-- | src/lib/elementary/elm_genlist.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c index 63e96e52aa..3cca3b2d4c 100644 --- a/src/lib/elementary/elm_genlist.c +++ b/src/lib/elementary/elm_genlist.c @@ -375,6 +375,10 @@ _widget_calculate_recursive(Eo *obj) pd = efl_data_scope_get(obj, ELM_WIDGET_CLASS); if (!pd) return; + if (!efl_canvas_group_need_recalculate_get(obj) && + !efl_canvas_group_need_recalculate_get(pd->resize_obj)) + return; + EINA_LIST_FOREACH(pd->subobjs, l, child) _widget_calculate_recursive(child); @@ -433,8 +437,12 @@ _item_content_realize(Elm_Gen_Item *it, if (efl_isa(content, ELM_WIDGET_CLASS)) { ELM_WIDGET_DATA_GET_OR_RETURN(content, wd); - if (efl_canvas_group_need_recalculate_get(wd->resize_obj)) - _widget_calculate_recursive(content); + + // FIXME : Layout need sizing eval before group calculate + if (efl_class_get(content) == ELM_LAYOUT_CLASS) + elm_obj_layout_sizing_eval(content); + + _widget_calculate_recursive(content); } if (!edje_object_part_swallow(target, key, content)) |