From 044bc28e3a7087ae66ef463d0b8bce7e818cb195 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Thu, 21 Nov 2019 19:49:01 +0900 Subject: [PATCH] elm/hoversel: Recalculate items before box calculate. Summary: After the item is packed into the box, the min of the item can be initialized with content_set working. content_set calls parent_set and checks the theme when calling parent_set. At that time, if theme is changed in the parent of layout using hoversel, call theme_apply(efl_ui_layout) to make min value 0, 0. This patch can avoid it. Test Plan: N/A Reviewers: YOhoho, Hermet, woohyun, zmike, Jaehyun_Cho Reviewed By: Jaehyun_Cho Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10712 --- src/lib/elementary/elc_hoversel.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c index ca08e713df..2f742f2051 100644 --- a/src/lib/elementary/elc_hoversel.c +++ b/src/lib/elementary/elc_hoversel.c @@ -238,6 +238,8 @@ static void _sizing_eval(void *data) { Evas_Object *obj = data; + Elm_Object_Item *eo_item; + const Eina_List *l; const char *max_size_str; int max_size = 0; char buf[128]; @@ -255,6 +257,12 @@ _sizing_eval(void *data) elm_layout_signal_emit(sd->hover, "elm,state,align,default", "elm"); edje_object_message_signal_process(elm_layout_edje_get(sd->hover)); + EINA_LIST_FOREACH(sd->items, l, eo_item) + { + ELM_HOVERSEL_ITEM_DATA_GET(eo_item, item); + efl_canvas_group_calculate(VIEW(item)); + } + elm_box_recalculate(sd->bx); evas_object_size_hint_combined_min_get(sd->bx, &box_w, &box_h); @@ -501,7 +509,6 @@ _activate(Evas_Object *obj) { ELM_HOVERSEL_ITEM_DATA_GET(eo_item, item); evas_object_show(VIEW(item)); - efl_canvas_group_calculate(VIEW(item)); elm_box_pack_end(sd->bx, VIEW(item)); }