genlist : add size_calc forcely about content when elm_layout.

Summary:
If the content object of genlist item is 'elm_layout' class,
minimum size cannot get directly becuase layout do the delay calculating.
So to make proper genlist size calc, before the swallowing,
forcely do the size calc about layout class contents in genlist.

@fix

Test Plan: N/A

Reviewers: raster, cedric, singh.amitesh, Hermet

Reviewed By: Hermet

Subscribers: seoz, conr2d, eagleeye

Differential Revision: https://phab.enlightenment.org/D3478
This commit is contained in:
SangHyeon Lee 2016-01-04 18:02:11 +09:00
parent 761e503d03
commit 6e90616d06
1 changed files with 15 additions and 0 deletions

View File

@ -385,6 +385,21 @@ _item_content_realize(Elm_Gen_Item *it,
content = it->itc->func.content_get
((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), key);
if (!content) continue;
// FIXME: cause elm_layout sizing eval is delayed by smart calc,
// genlist cannot get actual min size of edje.
// This is workaround code to set min size directly.
if (eo_class_get(content) == ELM_LAYOUT_CLASS)
{
Evas_Coord old_w, old_h, minw = 0, minh = 0;
evas_object_size_hint_min_get(content, &old_w, &old_h);
edje_object_size_min_calc(elm_layout_edje_get(content), &minw, &minh);
if (old_w > minw) minw = old_w;
if (old_h > minh) minw = old_h;
evas_object_size_hint_min_set(content, minw, minh);
}
*contents = eina_list_append(*contents, content);
if (!edje_object_part_swallow(target, key, content))
{