ecore evas - wayland - avoid divide by 0 if height is 0
fixes CID 1379247
This commit is contained in:
parent
dea4e5aa46
commit
92e8935fa6
|
@ -316,11 +316,16 @@ _ecore_evas_wl_common_resize(Ecore_Evas *ee, int w, int h)
|
|||
/* copied from e_client.c */
|
||||
Evas_Aspect_Control aspect;
|
||||
int aw, ah;
|
||||
double val, a = (double)w / h;
|
||||
double val, a;
|
||||
|
||||
if (h > 0)
|
||||
{
|
||||
a = (double)w / (double)h;
|
||||
if (fabs(a - ee->prop.aspect) > 0.001)
|
||||
{
|
||||
int step_w = ee->prop.step.w ?: 1, step_h = ee->prop.step.h ?: 1;
|
||||
int step_w = ee->prop.step.w ?: 1;
|
||||
int step_h = ee->prop.step.h ?: 1;
|
||||
|
||||
if (wdata->resizing || wdata->win->resizing)
|
||||
ew = wdata->cw, eh = wdata->ch;
|
||||
if (abs(w - ew) > abs(h - eh))
|
||||
|
@ -330,11 +335,10 @@ _ecore_evas_wl_common_resize(Ecore_Evas *ee, int w, int h)
|
|||
switch (aspect)
|
||||
{
|
||||
case EVAS_ASPECT_CONTROL_HORIZONTAL:
|
||||
val = ((h - (w / ee->prop.aspect)) * step_h) / step_h;
|
||||
if (val > 0)
|
||||
ah = ceil(val);
|
||||
else
|
||||
ah = floor(val);
|
||||
val = ((h - (w / ee->prop.aspect)) *
|
||||
step_h) / step_h;
|
||||
if (val > 0) ah = ceil(val);
|
||||
else ah = floor(val);
|
||||
if ((h - ah > minh) || (minh < 1))
|
||||
{
|
||||
h -= ah;
|
||||
|
@ -343,11 +347,10 @@ _ecore_evas_wl_common_resize(Ecore_Evas *ee, int w, int h)
|
|||
EINA_FALLTHROUGH;
|
||||
/* no break */
|
||||
default:
|
||||
val = (((h * ee->prop.aspect) - w) * step_w) / step_w;
|
||||
if (val > 0)
|
||||
aw = ceil(val);
|
||||
else
|
||||
aw = floor(val);
|
||||
val = (((h * ee->prop.aspect) - w) *
|
||||
step_w) / step_w;
|
||||
if (val > 0) aw = ceil(val);
|
||||
else aw = floor(val);
|
||||
if ((w + aw < maxw) || (maxw < 1))
|
||||
w += aw;
|
||||
break;
|
||||
|
@ -355,6 +358,7 @@ _ecore_evas_wl_common_resize(Ecore_Evas *ee, int w, int h)
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ee->w = w;
|
||||
ee->h = h;
|
||||
|
|
Loading…
Reference in New Issue