diff --git a/legacy/edje/src/lib/edje_calc.c b/legacy/edje/src/lib/edje_calc.c index 0accfafb07..e65099018e 100644 --- a/legacy/edje/src/lib/edje_calc.c +++ b/legacy/edje/src/lib/edje_calc.c @@ -1238,7 +1238,11 @@ _edje_box_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edje_ evas_object_box_align_set(ep->object, chosen_desc->box.align.x, chosen_desc->box.align.y); evas_object_box_padding_set(ep->object, chosen_desc->box.padding.x, chosen_desc->box.padding.y); - evas_object_smart_calculate(ep->object); + if (evas_object_smart_need_recalculate_get(ep->object)) + { + evas_object_smart_need_recalculate_set(ep->object, 0); + evas_object_smart_calculate(ep->object); + } evas_object_size_hint_min_get(ep->object, &min_w, &min_h); if (chosen_desc->box.min.h) p3->w = min_w; diff --git a/legacy/evas/src/lib/canvas/evas_object_box.c b/legacy/evas/src/lib/canvas/evas_object_box.c index 1d5632f887..b8bdd5d0ff 100644 --- a/legacy/evas/src/lib/canvas/evas_object_box.c +++ b/legacy/evas/src/lib/canvas/evas_object_box.c @@ -552,6 +552,9 @@ evas_object_box_layout_set(Evas_Object *o, Evas_Object_Box_Layout cb, const void { EVAS_OBJECT_BOX_DATA_GET_OR_RETURN(o, priv); + if ((priv->layout.cb == cb) && (priv->layout.data == data) && (priv->layout.free_data == free_data)) + return; + if (priv->layout.data && priv->layout.free_data) priv->layout.free_data(priv->layout.data);