raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3cb947d1a5202d4ca6f56d1d38b0d3a2cda05ce8
commit 3cb947d1a5202d4ca6f56d1d38b0d3a2cda05ce8 Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com> Date: Thu Feb 2 08:50:11 2017 +0900 evas grid smart - fix divide by 0 if object happens to be 0x0 then we can get a divide by 0... fix! @fix --- src/lib/evas/canvas/evas_object_grid.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_grid.c b/src/lib/evas/canvas/evas_object_grid.c index 12e5b47..9d44aa6 100644 --- a/src/lib/evas/canvas/evas_object_grid.c +++ b/src/lib/evas/canvas/evas_object_grid.c @@ -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); } --