From 213c97554c48c66cc17e648d7db8c5ffc13dea5d Mon Sep 17 00:00:00 2001 From: SangHyeon Lee Date: Mon, 4 Jan 2016 18:02:11 +0900 Subject: [PATCH] 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 Change-Id: I1678cdb0e288db356cb2631f54bc37c8c6492294 --- src/lib/elm_genlist.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index e59b37361..171a92288 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -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 (_elm_config->atspi_mode && eo_isa(content, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN)) eo_do(content, elm_interface_atspi_accessible_parent_set(EO_OBJ(it))); -- 2.34.1