evas grid smart - fix divide by 0

if object happens to be 0x0 then we can get a divide by 0... fix!

@fix
This commit is contained in:
Carsten Haitzler 2017-02-02 08:50:11 +09:00
parent 5097ba893b
commit 3cb947d1a5
1 changed files with 23 additions and 7 deletions

View File

@ -229,18 +229,34 @@ _evas_object_grid_smart_calculate(Evas_Object *o)
{
long long x1, y1, x2, y2;
if (!mirror)
if (vwl > 0)
{
x1 = xl + ((wl * (long long)opt->x) / vwl);
x2 = xl + ((wl * (long long)(opt->x + opt->w)) / vwl);
if (!mirror)
{
x1 = xl + ((wl * (long long)opt->x) / vwl);
x2 = xl + ((wl * (long long)(opt->x + opt->w)) / vwl);
}
else
{
x1 = xl + ((wl * (vwl - (long long)(opt->x + opt->w))) / vwl);
x2 = xl + ((wl * (vwl - (long long)opt->x)) / vwl);
}
}
else
{
x1 = xl + ((wl * (vwl - (long long)(opt->x + opt->w))) / vwl);
x2 = xl + ((wl * (vwl - (long long)opt->x)) / vwl);
x1 = xl;
x2 = xl;
}
if (vhl > 0)
{
y1 = yl + ((hl * (long long)opt->y) / vhl);
y2 = yl + ((hl * (long long)(opt->y + opt->h)) / vhl);
}
else
{
y1 = yl;
y2 = yl;
}
y1 = yl + ((hl * (long long)opt->y) / vhl);
y2 = yl + ((hl * (long long)(opt->y + opt->h)) / vhl);
evas_object_move(opt->obj, x1, y1);
evas_object_resize(opt->obj, x2 - x1, y2 - y1);
}