fix up aspect calcs for both axes controlling
SVN revision: 24149
This commit is contained in:
parent
3ea84d923f
commit
ace27d530c
|
@ -309,7 +309,7 @@ _edje_part_recalc_single(Edje *ed,
|
||||||
{
|
{
|
||||||
int apref;
|
int apref;
|
||||||
double aspect, amax, amin;
|
double aspect, amax, amin;
|
||||||
double new_w, new_h, want_x, want_y, want_w, want_h;
|
double new_w = 0, new_h = 0, want_x, want_y, want_w, want_h;
|
||||||
|
|
||||||
want_x = params->x;
|
want_x = params->x;
|
||||||
want_w = new_w = params->w;
|
want_w = new_w = params->w;
|
||||||
|
@ -317,12 +317,6 @@ _edje_part_recalc_single(Edje *ed,
|
||||||
want_y = params->y;
|
want_y = params->y;
|
||||||
want_h = new_h = params->h;
|
want_h = new_h = params->h;
|
||||||
|
|
||||||
if ((maxw >= 0) && (new_w > maxw)) new_w = maxw;
|
|
||||||
if (new_w < minw) new_w = minw;
|
|
||||||
|
|
||||||
if ((maxh >= 0) && (new_h > maxh)) new_h = maxh;
|
|
||||||
if (new_h < minh) new_h = minh;
|
|
||||||
|
|
||||||
aspect = (double)params->w / (double)params->h;
|
aspect = (double)params->w / (double)params->h;
|
||||||
apref = desc->aspect.prefer;
|
apref = desc->aspect.prefer;
|
||||||
amax = desc->aspect.max;
|
amax = desc->aspect.max;
|
||||||
|
@ -400,15 +394,48 @@ _edje_part_recalc_single(Edje *ed,
|
||||||
new_h = (params->w / amin);
|
new_h = (params->w / amin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((maxw >= 0) && (new_w > maxw)) new_w = maxw;
|
||||||
|
if (new_w < minw) new_w = minw;
|
||||||
|
|
||||||
|
if ((maxh >= 0) && (new_h > maxh)) new_h = maxh;
|
||||||
|
if (new_h < minh) new_h = minh;
|
||||||
|
|
||||||
/* do real adjustment */
|
/* do real adjustment */
|
||||||
if (apref == EDJE_ASPECT_PREFER_BOTH)
|
if (apref == EDJE_ASPECT_PREFER_BOTH)
|
||||||
{
|
{
|
||||||
/* fix h and vary w */
|
if (amin == 0.0) amin = amax;
|
||||||
if (new_w > params->w)
|
if (amin != 0.0)
|
||||||
params->w = new_w;
|
{
|
||||||
/* fix w and vary h */
|
/* fix h and vary w */
|
||||||
else
|
if (new_w > params->w)
|
||||||
params->h = new_h;
|
{
|
||||||
|
// params->w = new_w;
|
||||||
|
// EXCEEDS BOUNDS in W
|
||||||
|
new_h = (params->w / amin);
|
||||||
|
new_w = params->w;
|
||||||
|
if (new_h > params->h)
|
||||||
|
{
|
||||||
|
new_h = params->h;
|
||||||
|
new_w = (params->h * amin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* fix w and vary h */
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// params->h = new_h;
|
||||||
|
// EXCEEDS BOUNDS in H
|
||||||
|
new_h = params->h;
|
||||||
|
new_w = (params->h * amin);
|
||||||
|
if (new_w > params->w)
|
||||||
|
{
|
||||||
|
new_h = (params->w / amin);
|
||||||
|
new_w = params->w;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
params->w = new_w;
|
||||||
|
params->h = new_h;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue