Index: src/lib/edje_util.c =================================================================== RCS file: /var/cvs/e/e17/libs/edje/src/lib/edje_util.c,v retrieving revision 1.89 diff -u -r1.89 edje_util.c --- src/lib/edje_util.c 1 Mar 2007 22:39:01 -0000 1.89 +++ src/lib/edje_util.c 28 Mar 2007 17:15:43 -0000 @@ -784,6 +784,7 @@ EVAS_CALLBACK_FREE, _edje_object_part_swallow_free_cb); evas_object_clip_unset(rp->swallowed_object); + evas_object_data_del(rp->swallowed_object, "\377 edje.swallowing_part"); rp->swallowed_object = NULL; } if (!obj_swallow) return; @@ -842,6 +843,7 @@ rp->swallow_params.aspect.mode = am; rp->swallow_params.aspect.w = aw; rp->swallow_params.aspect.h = ah; + evas_object_data_set(rp->swallowed_object, "\377 edje.swallowing_part", rp); } ed->dirty = 1; _edje_recalc(ed); @@ -858,6 +860,7 @@ edje_extern_object_min_size_set(Evas_Object *obj, Evas_Coord minw, Evas_Coord minh) { int mw, mh; + Edje_Real_Part *rp; mw = minw; mh = minh; @@ -871,6 +874,13 @@ evas_object_data_set(obj, "\377 edje.minh", (void *)mh); else evas_object_data_del(obj, "\377 edje.minh"); + + rp = evas_object_data_get(obj, "\377 edje.swallowing_part"); + if (rp) + { + rp->swallow_params.min.w = mw; + rp->swallow_params.min.h = mh; + } } /** Set the object maximum size @@ -884,6 +894,7 @@ edje_extern_object_max_size_set(Evas_Object *obj, Evas_Coord maxw, Evas_Coord maxh) { int mw, mh; + Edje_Real_Part *rp; mw = maxw; mh = maxh; @@ -895,6 +906,13 @@ evas_object_data_set(obj, "\377 edje.maxh", (void *)mh); else evas_object_data_del(obj, "\377 edje.maxh"); + + rp = evas_object_data_get(obj, "\377 edje.swallowing_part"); + if (rp) + { + rp->swallow_params.max.w = mw >= 0 ? mw : -1; + rp->swallow_params.max.h = mh >= 0 ? mh : -1; + } } /** Set the object aspect size @@ -913,6 +931,7 @@ { int mw, mh; int mc; + Edje_Real_Part *rp; mc = aspect; mw = aw; @@ -929,6 +948,14 @@ evas_object_data_set(obj, "\377 edje.asph", (void *)mh); else evas_object_data_del(obj, "\377 edje.asph"); + + rp = evas_object_data_get(obj, "\377 edje.swallowing_part"); + if (rp) + { + rp->swallow_params.aspect.mode = mc > 0 ? mc : 0; + rp->swallow_params.aspect.w = mw > 0 ? mw : 0; + rp->swallow_params.aspect.h = mh > 0 ? mh : 0; + } } /** Unswallow an object @@ -957,6 +984,7 @@ EVAS_CALLBACK_FREE, _edje_object_part_swallow_free_cb); evas_object_clip_unset(rp->swallowed_object); + evas_object_data_del(rp->swallowed_object, "\377 edje.swallowing_part"); rp->swallowed_object = NULL; rp->swallow_params.min.w = 0; rp->swallow_params.min.h = 0;