From 3a451650d2f875077419e5777c49d04c618211f0 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 31 Mar 2015 19:07:46 -0400 Subject: [PATCH] edje calc no longer performs calculations for group parts of fixed size if the min/max of a part are identical and > 0, the part's min size is guaranteed to be this size. there is no need to perform expensive recursive calcs here --- src/lib/edje/edje_calc.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 5cb8902..c8268e2 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -3225,8 +3225,18 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta (ep->typedata.swallow)) && ep->typedata.swallow->swallowed_object) { - edje_object_size_min_calc(ep->typedata.swallow->swallowed_object, - &mmw, &mmh); + Edje_Size *min = NULL, *max = NULL; + + if (ep->chosen_description) + { + min = &ep->chosen_description->min; + max = &ep->chosen_description->max; + } + if (min && max && (min->w == max->w) && (min->h == max->h)) + mmw = min->w, mmh = min->h; + else + edje_object_size_min_calc(ep->typedata.swallow->swallowed_object, + &mmw, &mmh); } #ifdef EDJE_CALC_CACHE -- 2.7.4