edje: forth recalc for text part that got adjusted during a calc_only.

This commit is contained in:
Cedric Bail 2013-08-12 16:47:12 +09:00
parent cd612516bd
commit b13db5ab8d
1 changed files with 34 additions and 9 deletions

View File

@ -2355,24 +2355,49 @@ _edje_part_recalc_single(Edje *ed,
/* Adjust rounding to not loose one pixels compared to float
information only when rendering to avoid infinite adjustement
when doing min restricted calc */
if (!ed->calc_only)
if (ABS(params->final.x) + params->final.w < TO_INT(ADD(ABS(params->eval.x), params->eval.w)))
{
if (ABS(params->final.x) + params->final.w < TO_INT(ADD(ABS(params->eval.x), params->eval.w)))
{
if (!ed->calc_only)
{
params->final.w += 1;
}
else if (ABS(params->final.x) + params->final.w > TO_INT(ADD(ABS(params->eval.x), params->eval.w)))
{
}
else
{
ep->invalidate = EINA_TRUE;
}
}
else if (ABS(params->final.x) + params->final.w > TO_INT(ADD(ABS(params->eval.x), params->eval.w)))
{
if (!ed->calc_only)
{
params->final.w -= 1;
}
if (ABS(params->final.y) + params->final.h < TO_INT(ADD(ABS(params->eval.y), params->eval.h)))
}
else
{
ep->invalidate = EINA_TRUE;
}
}
if (ABS(params->final.y) + params->final.h < TO_INT(ADD(ABS(params->eval.y), params->eval.h)))
{
if (!ed->calc_only)
{
params->final.h += 1;
}
else if (ABS(params->final.y) + params->final.h > TO_INT(ADD(ABS(params->eval.y), params->eval.h)))
else
{
ep->invalidate = EINA_TRUE;
}
}
else if (ABS(params->final.y) + params->final.h > TO_INT(ADD(ABS(params->eval.y), params->eval.h)))
{
if (!ed->calc_only)
{
params->final.h -= 1;
}
else
{
ep->invalidate = EINA_TRUE;
}
}
/* fill */