summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_object_table.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_table.c
parent563bf84388e296c05eb5a8dabc1ee5b896f69387 (diff)
evas: agressively freeze events on calculate callback and clear.
Diffstat (limited to 'src/lib/evas/canvas/evas_object_table.c')
-rw-r--r--src/lib/evas/canvas/evas_object_table.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_object_table.c b/src/lib/evas/canvas/evas_object_table.c
index 7af2846..a9259a8 100644
--- a/src/lib/evas/canvas/evas_object_table.c
+++ b/src/lib/evas/canvas/evas_object_table.c
@@ -936,6 +936,8 @@ _evas_table_evas_object_smart_resize(Eo *obj, Evas_Table_Data *_pd EINA_UNUSED,
936EOLIAN static void 936EOLIAN static void
937_evas_table_evas_object_smart_calculate(Eo *o, Evas_Table_Data *priv) 937_evas_table_evas_object_smart_calculate(Eo *o, Evas_Table_Data *priv)
938{ 938{
939 Evas *e;
940
939 if ((priv->size.cols < 1) || (priv->size.rows < 1)) 941 if ((priv->size.cols < 1) || (priv->size.rows < 1))
940 { 942 {
941 DBG("Nothing to do: cols=%d, rows=%d", 943 DBG("Nothing to do: cols=%d, rows=%d",
@@ -943,10 +945,15 @@ _evas_table_evas_object_smart_calculate(Eo *o, Evas_Table_Data *priv)
943 return; 945 return;
944 } 946 }
945 947
948 e = evas_object_evas_get(o);
949 evas_event_freeze(e);
950
946 if (priv->homogeneous) 951 if (priv->homogeneous)
947 _evas_object_table_smart_calculate_homogeneous(o, priv); 952 _evas_object_table_smart_calculate_homogeneous(o, priv);
948 else 953 else
949 _evas_object_table_smart_calculate_regular(o, priv); 954 _evas_object_table_smart_calculate_regular(o, priv);
955
956 evas_event_thaw(e);
950} 957}
951 958
952EAPI Evas_Object * 959EAPI Evas_Object *
@@ -1261,6 +1268,10 @@ EOLIAN static void
1261_evas_table_clear(Eo *o, Evas_Table_Data *priv, Eina_Bool clear) 1268_evas_table_clear(Eo *o, Evas_Table_Data *priv, Eina_Bool clear)
1262{ 1269{
1263 Evas_Object_Table_Option *opt; 1270 Evas_Object_Table_Option *opt;
1271 Evas *e;
1272
1273 e = evas_object_evas_get(o);
1274 evas_event_freeze(e);
1264 1275
1265 EINA_LIST_FREE(priv->children, opt) 1276 EINA_LIST_FREE(priv->children, opt)
1266 { 1277 {
@@ -1275,6 +1286,8 @@ _evas_table_clear(Eo *o, Evas_Table_Data *priv, Eina_Bool clear)
1275 priv->size.rows = 0; 1286 priv->size.rows = 0;
1276 _evas_object_table_cache_invalidate(priv); 1287 _evas_object_table_cache_invalidate(priv);
1277 evas_object_smart_changed(o); 1288 evas_object_smart_changed(o);
1289
1290 evas_event_thaw(e);
1278} 1291}
1279 1292
1280EOLIAN static void 1293EOLIAN static void