diff --git a/legacy/edje/src/lib/Edje.h b/legacy/edje/src/lib/Edje.h index 0e066e0ff2..0c677b99b0 100644 --- a/legacy/edje/src/lib/Edje.h +++ b/legacy/edje/src/lib/Edje.h @@ -187,6 +187,7 @@ extern "C" { EAPI void edje_object_text_class_set (Evas_Object *obj, const char *text_class, const char *font, Evas_Font_Size size); EAPI void edje_object_size_min_get (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh); EAPI void edje_object_size_max_get (Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh); + EAPI void edje_object_calc_force (Evas_Object *obj); EAPI void edje_object_size_min_calc (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh); EAPI int edje_object_part_exists (Evas_Object *obj, const char *part); EAPI void edje_object_part_geometry_get (Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h); diff --git a/legacy/edje/src/lib/edje_util.c b/legacy/edje/src/lib/edje_util.c index 3bdcf6203f..0894a012c9 100644 --- a/legacy/edje/src/lib/edje_util.c +++ b/legacy/edje/src/lib/edje_util.c @@ -763,6 +763,26 @@ edje_object_size_max_get(Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh) } } +/** Force a Size/Geometry Calc + * @param obj A valid Evas_Object handle + * + * Forces the object @p obj to recalc layout regardless of freeze/thaw + */ +void +edje_object_calc_force(Evas_Object *obj) +{ + Edje *ed; + int pf; + + ed = _edje_fetch(obj); + if (!ed) return; + ed->dirty = 1; + pf = ed->freeze; + ed->freeze = 0; + _edje_recalc(ed); + ed->freeze = pf; +} + /** Calculate minimum size * @param obj A valid Evas_Object handle * @param minw Minimum width pointer