Ok was shared between width and height and in the error, and in the error
case we don't reset maxw and maxh; This caused maxw and maxh to be added
a couple of times even when not needed. This would cause weird sizing.
SVN revision: 59450
Edje *ed;
Evas_Coord pw, ph;
int maxw, maxh;
- int ok;
+ int okw, okh;
int reset_maxwh;
Edje_Real_Part *pep = NULL;
Eina_Bool has_non_fixed_tb = EINA_FALSE;
maxw = 0;
maxh = 0;
- ok = 1;
- while (ok)
+ do
{
unsigned int i;
- ok = 0;
+ okw = okh = 0;
ed->dirty = 1;
#ifdef EDJE_CALC_CACHE
ed->all_part_change = 1;
if (w > maxw)
{
maxw = w;
- ok = 1;
+ okw = 1;
pep = ep;
didw = 1;
}
if (h > maxh)
{
maxh = h;
- ok = 1;
+ okh = 1;
pep = ep;
}
has_non_fixed_tb = EINA_TRUE;
}
}
}
- if (ok)
+ if (okw)
{
ed->w += maxw;
- ed->h += maxh;
if (ed->w < restrictedw) ed->w = restrictedw;
+ }
+ if (okh)
+ {
+ ed->h += maxh;
if (ed->h < restrictedh) ed->h = restrictedh;
}
if ((ed->w > 4000) || (ed->h > 4000))
}
}
}
+ while (okw || okh);
ed->min.w = ed->w;
ed->min.h = ed->h;