aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/evas/canvas/evas_object_grid.c
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2014-09-06 15:10:02 +0200
committerCedric BAIL <cedric@osg.samsung.com>2014-09-06 15:10:36 +0200
commit532c598557ddc44109de39608af9d74cff3056d3 (patch)
tree5adcf41be8f345f0bb2212c4499c400a484537fb /src/lib/evas/canvas/evas_object_grid.c
parentevas: let's freeze the canvas, shall we ? (diff)
downloadefl-532c598557ddc44109de39608af9d74cff3056d3.tar.gz
evas: agressively freeze events on calculate callback and clear.
Diffstat (limited to 'src/lib/evas/canvas/evas_object_grid.c')
-rw-r--r--src/lib/evas/canvas/evas_object_grid.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lib/evas/canvas/evas_object_grid.c b/src/lib/evas/canvas/evas_object_grid.c
index 941f1bc5f4..8d153cdbe1 100644
--- a/src/lib/evas/canvas/evas_object_grid.c
+++ b/src/lib/evas/canvas/evas_object_grid.c
@@ -208,11 +208,16 @@ _evas_object_grid_smart_calculate(Evas_Object *o)
{
Eina_List *l;
Evas_Object_Grid_Option *opt;
+ Evas *e;
Evas_Coord x, y, w, h, vw, vh;
Eina_Bool mirror;
-
+
EVAS_OBJECT_GRID_DATA_GET_OR_RETURN(o, priv);
if (!priv->children) return;
+
+ e = evas_object_evas_get(o);
+ evas_event_freeze(e);
+
evas_object_geometry_get(o, &x, &y, &w, &h);
mirror = priv->is_mirrored;
vw = priv->size.w;
@@ -220,7 +225,7 @@ _evas_object_grid_smart_calculate(Evas_Object *o)
EINA_LIST_FOREACH(priv->children, l, opt)
{
Evas_Coord x1, y1, x2, y2;
-
+
if (!mirror)
{
x1 = x + ((w * opt->x) / vw);
@@ -236,6 +241,8 @@ _evas_object_grid_smart_calculate(Evas_Object *o)
evas_object_move(opt->obj, x1, y1);
evas_object_resize(opt->obj, x2 - x1, y2 - y1);
}
+
+ evas_event_thaw(e);
}
static void