fix vgd issue with anchors in entires.
[framework/uifw/elementary.git] / src / lib / elm_box.c
index 3651363..bcf0b38 100644 (file)
@@ -1,5 +1,6 @@
 #include <Elementary.h>
 #include "elm_priv.h"
+#include "els_box.h"
 
 static const char SIG_CHILD_ADDED[] = "child,added";
 static const char SIG_CHILD_REMOVED[] = "child,removed";
@@ -19,6 +20,7 @@ struct _Widget_Data
    Evas_Object *box;
    Eina_Bool horizontal:1;
    Eina_Bool homogeneous:1;
+   Eina_Bool recalc:1;
 };
 
 struct _Elm_Box_Transition
@@ -447,12 +449,6 @@ elm_box_homogeneous_set(Evas_Object *obj, Eina_Bool homogeneous)
      } */
 }
 
-EINA_DEPRECATED EAPI void
-elm_box_homogenous_set(Evas_Object *obj, Eina_Bool homogenous)
-{
-   elm_box_homogeneous_set(obj, homogenous);
-}
-
 EAPI Eina_Bool
 elm_box_homogeneous_get(const Evas_Object *obj)
 {
@@ -462,12 +458,6 @@ elm_box_homogeneous_get(const Evas_Object *obj)
    return wd->homogeneous;
 }
 
-EINA_DEPRECATED EAPI Eina_Bool
-elm_box_homogenous_get(const Evas_Object *obj)
-{
-   return elm_box_homogeneous_get(obj);
-}
-
 EAPI void
 elm_box_pack_start(Evas_Object *obj, Evas_Object *subobj)
 {
@@ -536,7 +526,7 @@ elm_box_unpack_all(Evas_Object *obj)
 }
 
 EAPI void
-elm_box_layout_set(Evas_Object *obj, Evas_Object_Box_Layout cb, const void *data, void (*free_data)(void *data))
+elm_box_layout_set(Evas_Object *obj, Evas_Object_Box_Layout cb, const void *data, Ecore_Cb free_data)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
@@ -584,10 +574,10 @@ elm_box_layout_transition(Evas_Object *obj, Evas_Object_Box_Data *priv, void *da
 EAPI Elm_Box_Transition *
 elm_box_transition_new(const double duration,
                        Evas_Object_Box_Layout start_layout, void *start_layout_data,
-                       void(*start_layout_free_data)(void *data),
+                       Ecore_Cb start_layout_free_data,
                        Evas_Object_Box_Layout end_layout, void *end_layout_data,
-                       void(*end_layout_free_data)(void *data),
-                       void(*transition_end_cb)(void *data),
+                       Ecore_Cb end_layout_free_data,
+                       Ecore_Cb transition_end_cb,
                        void *transition_end_data)
 {
    Elm_Box_Transition *box_data;
@@ -635,7 +625,7 @@ elm_box_transition_free(void *data)
    free(data);
 }
 
-EAPI const Eina_List *
+EAPI Eina_List *
 elm_box_children_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -685,7 +675,9 @@ elm_box_recalculate(Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
+   if ((!wd) || (wd->recalc)) return;
    evas_object_smart_need_recalculate_set(wd->box, EINA_TRUE);
+   wd->recalc++;
    evas_object_smart_calculate(wd->box);
+   wd->recalc--;
 }