forked from enlightenment/efl
fix some min size calc and aspect calc issues.
SVN revision: 38994
This commit is contained in:
parent
b70ae3c927
commit
6f2cb19f03
|
@ -391,21 +391,14 @@ _edje_part_recalc_single(Edje *ed,
|
|||
}
|
||||
|
||||
/* aspect */
|
||||
if ((params->h > 0) &&
|
||||
(((flags | ep->calculated) & FLAG_XY) == FLAG_XY))
|
||||
if (((flags | ep->calculated) & FLAG_XY) == FLAG_XY)
|
||||
{
|
||||
int apref;
|
||||
int apref = -10;
|
||||
double aspect, amax, amin;
|
||||
double new_w = 0, new_h = 0, want_x, want_y, want_w, want_h;
|
||||
|
||||
want_x = params->x;
|
||||
want_w = new_w = params->w;
|
||||
|
||||
want_y = params->y;
|
||||
want_h = new_h = params->h;
|
||||
|
||||
aspect = (double)params->w / (double)params->h;
|
||||
apref = desc->aspect.prefer;
|
||||
if (params->h <= 0) aspect = 999999.0;
|
||||
else aspect = (double)params->w / (double)params->h;
|
||||
amax = desc->aspect.max;
|
||||
amin = desc->aspect.min;
|
||||
if ((ep->swallow_params.aspect.w > 0) &&
|
||||
|
@ -413,6 +406,15 @@ _edje_part_recalc_single(Edje *ed,
|
|||
amin = amax =
|
||||
(double)ep->swallow_params.aspect.w /
|
||||
(double)ep->swallow_params.aspect.h;
|
||||
want_x = params->x;
|
||||
want_w = new_w = params->w;
|
||||
|
||||
want_y = params->y;
|
||||
want_h = new_h = params->h;
|
||||
|
||||
if ((amin > 0.0) && (amax > 0.0))
|
||||
{
|
||||
apref = desc->aspect.prefer;
|
||||
if (ep->swallow_params.aspect.mode > EDJE_ASPECT_CONTROL_NONE)
|
||||
{
|
||||
switch (ep->swallow_params.aspect.mode)
|
||||
|
@ -433,11 +435,10 @@ _edje_part_recalc_single(Edje *ed,
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (apref)
|
||||
{
|
||||
case EDJE_ASPECT_PREFER_NONE:
|
||||
/* keep botth dimensions in check */
|
||||
/* keep both dimensions in check */
|
||||
/* adjust for min aspect (width / height) */
|
||||
if ((amin > 0.0) && (aspect < amin))
|
||||
{
|
||||
|
@ -496,6 +497,8 @@ _edje_part_recalc_single(Edje *ed,
|
|||
new_h = (params->w / amin);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (!((amin > 0.0) && (amax > 0.0) && (apref == EDJE_ASPECT_PREFER_NONE)))
|
||||
|
@ -516,8 +519,8 @@ _edje_part_recalc_single(Edje *ed,
|
|||
/* fix h and vary w */
|
||||
if (new_w > params->w)
|
||||
{
|
||||
// params->w = new_w;
|
||||
// EXCEEDS BOUNDS in W
|
||||
// params->w = new_w;
|
||||
// EXCEEDS BOUNDS in W
|
||||
new_h = (params->w / amin);
|
||||
new_w = params->w;
|
||||
if (new_h > params->h)
|
||||
|
@ -529,8 +532,8 @@ _edje_part_recalc_single(Edje *ed,
|
|||
/* fix w and vary h */
|
||||
else
|
||||
{
|
||||
// params->h = new_h;
|
||||
// EXCEEDS BOUNDS in H
|
||||
// params->h = new_h;
|
||||
// EXCEEDS BOUNDS in H
|
||||
new_h = params->h;
|
||||
new_w = (params->h * amin);
|
||||
if (new_w > params->w)
|
||||
|
@ -543,7 +546,8 @@ _edje_part_recalc_single(Edje *ed,
|
|||
params->h = new_h;
|
||||
}
|
||||
}
|
||||
else
|
||||
}
|
||||
if (apref != EDJE_ASPECT_PREFER_BOTH)
|
||||
{
|
||||
if ((amin > 0.0) && (amax > 0.0) && (apref == EDJE_ASPECT_PREFER_NONE))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue