hermet pushed a commit to branch master.

commit b7113b67ea6fad05dad9d6e6f8e37572940efc9c
Author: ChunEon Park <[email protected]>
Date:   Tue Aug 27 14:19:19 2013 +0900

    elementary/widgets - set parents before widget constructs their body.
    
    This avoids unnecessary multiple setups when obj and subobj has connected.
---
 src/lib/elm_glview.c          | 4 ++--
 src/lib/elm_grid.c            | 5 +++--
 src/lib/elm_hover.c           | 4 ++--
 src/lib/elm_icon.c            | 5 +++--
 src/lib/elm_image.c           | 4 ++--
 src/lib/elm_index.c           | 4 ++--
 src/lib/elm_inwin.c           | 4 ++--
 src/lib/elm_layout.c          | 3 ++-
 src/lib/elm_list.c            | 4 ++--
 src/lib/elm_map.c             | 4 ++--
 src/lib/elm_mapbuf.c          | 4 ++--
 src/lib/elm_menu.c            | 4 ++--
 src/lib/elm_notify.c          | 4 ++--
 src/lib/elm_panel.c           | 4 ++--
 src/lib/elm_panes.c           | 4 ++--
 src/lib/elm_photo.c           | 4 ++--
 src/lib/elm_photocam.c        | 4 ++--
 src/lib/elm_plug.c            | 4 ++--
 src/lib/elm_prefs.c           | 4 ++--
 src/lib/elm_progressbar.c     | 4 ++--
 src/lib/elm_radio.c           | 5 +++--
 src/lib/elm_route.c           | 2 +-
 src/lib/elm_scroller.c        | 3 +--
 src/lib/elm_segment_control.c | 4 ++--
 src/lib/elm_separator.c       | 3 +--
 src/lib/elm_slider.c          | 4 ++--
 src/lib/elm_slideshow.c       | 4 ++--
 src/lib/elm_spinner.c         | 4 ++--
 src/lib/elm_table.c           | 3 ++-
 src/lib/elm_thumb.c           | 3 +--
 src/lib/elm_toolbar.c         | 4 ++--
 src/lib/elm_video.c           | 3 +--
 src/lib/elm_web.c             | 3 ++-
 src/lib/elm_web2.c            | 3 ++-
 34 files changed, 66 insertions(+), 63 deletions(-)

diff --git a/src/lib/elm_glview.c b/src/lib/elm_glview.c
index 69976f0..91bebc9 100644
--- a/src/lib/elm_glview.c
+++ b/src/lib/elm_glview.c
@@ -197,6 +197,8 @@ _set_render_policy_callback(Evas_Object *obj)
 static void
 _elm_glview_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
 {
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    // Create image to render Evas_GL Surface
    Evas_Object *img = evas_object_image_filled_add(evas_object_evas_get(obj));
    elm_widget_resize_object_set(obj, img);
@@ -293,8 +295,6 @@ _constructor(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
         eo_error_set(obj);
         return;
      }
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI Evas_GL_API *
diff --git a/src/lib/elm_grid.c b/src/lib/elm_grid.c
index a9949bc..80bb446 100644
--- a/src/lib/elm_grid.c
+++ b/src/lib/elm_grid.c
@@ -131,7 +131,10 @@ _elm_grid_smart_theme(Eo *obj, void *_pd EINA_UNUSED, 
va_list *list)
 static void
 _elm_grid_smart_add(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
 {
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    Elm_Widget_Smart_Data *wd = eo_data_scope_get(obj, ELM_OBJ_WIDGET_CLASS);
+
    Evas_Object *grid = evas_object_grid_add(evas_object_evas_get(obj));
    elm_widget_resize_object_set(obj, grid);
    evas_object_grid_size_set(wd->resize_obj, 100, 100);
@@ -180,8 +183,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
 {
    eo_do_super(obj, MY_CLASS, eo_constructor());
    eo_do(obj, evas_obj_type_set(MY_CLASS_NAME));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_hover.c b/src/lib/elm_hover.c
index 8e89df2..55453c0 100644
--- a/src/lib/elm_hover.c
+++ b/src/lib/elm_hover.c
@@ -541,6 +541,8 @@ _elm_hover_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    for (i = 0; i < sizeof(priv->subs) / sizeof(priv->subs[0]); i++)
      priv->subs[i].swallow = _content_aliases[i].alias;
 
@@ -654,8 +656,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_icon.c b/src/lib/elm_icon.c
index a451f76..d203e07 100644
--- a/src/lib/elm_icon.c
+++ b/src/lib/elm_icon.c
@@ -608,6 +608,9 @@ static void
 _elm_icon_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
 {
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
+
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    Elm_Icon_Smart_Data *priv = _pd;
 
    priv->lookup_order = ELM_ICON_LOOKUP_THEME_FDO;
@@ -758,8 +761,6 @@ _constructor(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI Eina_Bool
diff --git a/src/lib/elm_image.c b/src/lib/elm_image.c
index b2040fa..a826a78 100644
--- a/src/lib/elm_image.c
+++ b/src/lib/elm_image.c
@@ -457,6 +457,8 @@ _elm_image_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 {
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    Elm_Image_Smart_Data *priv = _pd;
 
    priv->hit_rect = evas_object_rectangle_add(evas_object_evas_get(obj));
@@ -795,8 +797,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI Eina_Bool
diff --git a/src/lib/elm_index.c b/src/lib/elm_index.c
index d924b64..c302929 100644
--- a/src/lib/elm_index.c
+++ b/src/lib/elm_index.c
@@ -908,6 +908,8 @@ _elm_index_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    if (!elm_layout_theme_set
        (obj, "index", "base/vertical", elm_widget_style_get(obj)))
      CRITICAL("Failed to set layout!");
@@ -1121,8 +1123,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_inwin.c b/src/lib/elm_inwin.c
index 0b6bf42..1c9b5bf 100644
--- a/src/lib/elm_inwin.c
+++ b/src/lib/elm_inwin.c
@@ -76,6 +76,8 @@ _elm_inwin_smart_add(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list EINA_UNUSED)
 {
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    elm_widget_can_focus_set(obj, EINA_FALSE);
    elm_widget_highlight_ignore_set(obj, EINA_TRUE);
 
@@ -123,8 +125,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, eo_constructor());
    eo_do(obj, evas_obj_type_set(MY_CLASS_NAME));
-
-   elm_widget_sub_object_add(parent, obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_layout.c b/src/lib/elm_layout.c
index d453119..41d5fbb 100644
--- a/src/lib/elm_layout.c
+++ b/src/lib/elm_layout.c
@@ -1354,6 +1354,8 @@ _elm_layout_smart_add(Eo *obj, void *_pd EINA_UNUSED, 
va_list *list EINA_UNUSED)
 {
    Evas_Object *edje;
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    /* has to be there *before* parent's smart_add() */
    edje = edje_object_add(evas_object_evas_get(obj));
    elm_widget_resize_object_set(obj, edje);
@@ -2179,7 +2181,6 @@ _constructor(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 static void
diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c
index aeb410c..e193fdf 100644
--- a/src/lib/elm_list.c
+++ b/src/lib/elm_list.c
@@ -1690,6 +1690,8 @@ _elm_list_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    elm_widget_can_focus_set(obj, EINA_TRUE);
 
    priv->mode = ELM_LIST_SCROLL;
@@ -1854,8 +1856,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_map.c b/src/lib/elm_map.c
index a8d6ab2..b771532 100644
--- a/src/lib/elm_map.c
+++ b/src/lib/elm_map.c
@@ -3976,6 +3976,8 @@ _elm_map_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    Elm_Map_Smart_Data *priv = _pd;
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    edje = edje_object_add(evas_object_evas_get(obj));
    elm_widget_resize_object_set(obj, edje);
 
@@ -4209,8 +4211,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 #else
    eo_error_set(obj);
 #endif
diff --git a/src/lib/elm_mapbuf.c b/src/lib/elm_mapbuf.c
index 9c2d36e..07b3c0e 100644
--- a/src/lib/elm_mapbuf.c
+++ b/src/lib/elm_mapbuf.c
@@ -338,6 +338,8 @@ _elm_mapbuf_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    evas_object_static_clip_set(rect, EINA_TRUE);
    evas_object_pass_events_set(rect, EINA_TRUE);
    evas_object_color_set(rect, 0, 0, 0, 0);
@@ -366,8 +368,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do_super(obj, MY_CLASS, eo_constructor());
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 static void
diff --git a/src/lib/elm_menu.c b/src/lib/elm_menu.c
index 63fb6b1..bda563d 100644
--- a/src/lib/elm_menu.c
+++ b/src/lib/elm_menu.c
@@ -585,6 +585,8 @@ _elm_menu_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    elm_widget_can_focus_set(obj, EINA_FALSE);
 
    priv->location = elm_icon_add(obj);
@@ -697,8 +699,6 @@ _constructor(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
 
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
-
    elm_menu_parent_set(obj, eo_parent_get(obj));
    elm_hover_target_set(sd->hv, sd->location);
    elm_layout_content_set
diff --git a/src/lib/elm_notify.c b/src/lib/elm_notify.c
index 8bbb3b2..26fb793 100644
--- a/src/lib/elm_notify.c
+++ b/src/lib/elm_notify.c
@@ -476,6 +476,8 @@ _elm_notify_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    priv->allow_events = EINA_TRUE;
 
    priv->notify = edje_object_add(evas_object_evas_get(obj));
@@ -521,8 +523,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do_super(obj, MY_CLASS, eo_constructor());
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_panel.c b/src/lib/elm_panel.c
index 9481d04..3c74dab 100644
--- a/src/lib/elm_panel.c
+++ b/src/lib/elm_panel.c
@@ -345,6 +345,8 @@ _elm_panel_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    elm_widget_can_focus_set(obj, EINA_TRUE);
 
    /* just to bootstrap and have theme hook to work */
@@ -423,8 +425,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_panes.c b/src/lib/elm_panes.c
index 52e78a3..040bd5e 100644
--- a/src/lib/elm_panes.c
+++ b/src/lib/elm_panes.c
@@ -203,6 +203,8 @@ _elm_panes_smart_add(Eo *obj, void *_pd EINA_UNUSED, 
va_list *list EINA_UNUSED)
    
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    if (!elm_layout_theme_set
        (obj, "panes", "vertical", elm_widget_style_get(obj)))
      CRITICAL("Failed to set layout!");
@@ -257,8 +259,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EINA_DEPRECATED EAPI void
diff --git a/src/lib/elm_photo.c b/src/lib/elm_photo.c
index e39caa9..ae507d7 100644
--- a/src/lib/elm_photo.c
+++ b/src/lib/elm_photo.c
@@ -257,6 +257,8 @@ _elm_photo_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    elm_widget_can_focus_set(obj, EINA_FALSE);
 
    priv->icon = elm_icon_add(obj);
@@ -277,8 +279,6 @@ _elm_photo_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
    evas_object_smart_callback_add
      (priv->icon, "thumb,done", _on_thumb_done, obj);
 
-   elm_widget_sub_object_add(obj, priv->icon);
-
    _elm_photo_internal_image_follow(obj);
 
    _sizing_eval(obj);
diff --git a/src/lib/elm_photocam.c b/src/lib/elm_photocam.c
index 05c6a66..2a59dcd 100644
--- a/src/lib/elm_photocam.c
+++ b/src/lib/elm_photocam.c
@@ -1327,6 +1327,8 @@ _elm_photocam_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    Elm_Photocam_Smart_Data *priv = _pd;
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    edje = edje_object_add(evas_object_evas_get(obj));
    elm_widget_resize_object_set(obj, edje);
 
@@ -1476,8 +1478,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI Evas_Load_Error
diff --git a/src/lib/elm_plug.c b/src/lib/elm_plug.c
index e41bf1a..7ae0ef1 100644
--- a/src/lib/elm_plug.c
+++ b/src/lib/elm_plug.c
@@ -96,6 +96,8 @@ _elm_plug_smart_add(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    ee = ecore_evas_ecore_evas_get(evas_object_evas_get(obj));
    if (!ee) return;
 
@@ -128,8 +130,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI Evas_Object *
diff --git a/src/lib/elm_prefs.c b/src/lib/elm_prefs.c
index 43e8b7e..b8bd9da 100644
--- a/src/lib/elm_prefs.c
+++ b/src/lib/elm_prefs.c
@@ -48,6 +48,8 @@ static void
 _elm_prefs_smart_add(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
 {
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
+
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 static void _item_free(Elm_Prefs_Item_Node *it);
@@ -532,8 +534,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_elm_prefs_smart_callbacks,
                                                    NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 static Eina_Bool
diff --git a/src/lib/elm_progressbar.c b/src/lib/elm_progressbar.c
index 4adb438..d48c00e 100644
--- a/src/lib/elm_progressbar.c
+++ b/src/lib/elm_progressbar.c
@@ -247,6 +247,8 @@ _elm_progressbar_smart_add(Eo *obj, void *_pd, va_list 
*list EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    priv->horizontal = EINA_TRUE;
    priv->units = eina_stringshare_add("%.0f %%");
    priv->val = MIN_RATIO_LVL;
@@ -318,8 +320,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_radio.c b/src/lib/elm_radio.c
index 79138e1..d29543a 100644
--- a/src/lib/elm_radio.c
+++ b/src/lib/elm_radio.c
@@ -269,12 +269,15 @@ _access_state_cb(void *data __UNUSED__, Evas_Object *obj)
 
 static void
 _elm_radio_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+
 {
    Elm_Radio_Smart_Data *priv = _pd;
    Elm_Widget_Smart_Data *wd = eo_data_scope_get(obj, ELM_OBJ_WIDGET_CLASS);
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    if (!elm_layout_theme_set(obj, "radio", "base", elm_widget_style_get(obj)))
      CRITICAL("Failed to set layout!");
 
@@ -338,8 +341,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_route.c b/src/lib/elm_route.c
index b7586c4..2599489 100644
--- a/src/lib/elm_route.c
+++ b/src/lib/elm_route.c
@@ -144,6 +144,7 @@ _elm_route_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
    elm_widget_can_focus_set(obj, EINA_FALSE);
 
    evas_object_event_callback_add
@@ -194,7 +195,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do_super(obj, MY_CLASS, eo_constructor());
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME));
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 #ifdef ELM_EMAP
diff --git a/src/lib/elm_scroller.c b/src/lib/elm_scroller.c
index cfaba5e..f1b97ea 100644
--- a/src/lib/elm_scroller.c
+++ b/src/lib/elm_scroller.c
@@ -751,6 +751,7 @@ _elm_scroller_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
    elm_widget_can_focus_set(obj, EINA_TRUE);
 
    if (!elm_layout_theme_set
@@ -853,8 +854,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 /* deprecated */
diff --git a/src/lib/elm_segment_control.c b/src/lib/elm_segment_control.c
index 642ada4..b0332d2 100644
--- a/src/lib/elm_segment_control.c
+++ b/src/lib/elm_segment_control.c
@@ -610,6 +610,8 @@ _elm_segment_control_smart_add(Eo *obj, void *_pd 
EINA_UNUSED, va_list *list EIN
 {
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    if (!elm_layout_theme_set
        (obj, "segment_control", "base", elm_widget_style_get(obj)))
      CRITICAL("Failed to set layout!");
@@ -717,8 +719,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI Elm_Object_Item *
diff --git a/src/lib/elm_separator.c b/src/lib/elm_separator.c
index 5b211cd..6398085 100644
--- a/src/lib/elm_separator.c
+++ b/src/lib/elm_separator.c
@@ -53,6 +53,7 @@ _elm_separator_smart_add(Eo *obj, void *_pd __UNUSED__,
 {
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
    elm_widget_can_focus_set(obj, EINA_FALSE);
 
    if (!elm_layout_theme_set
@@ -77,8 +78,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do_super(obj, MY_CLASS, eo_constructor());
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_slider.c b/src/lib/elm_slider.c
index 7df5834..0437c71 100644
--- a/src/lib/elm_slider.c
+++ b/src/lib/elm_slider.c
@@ -799,6 +799,8 @@ _elm_slider_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    priv->horizontal = EINA_TRUE;
    priv->indicator_show = EINA_TRUE;
    priv->val_max = 1.0;
@@ -911,8 +913,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_slideshow.c b/src/lib/elm_slideshow.c
index 54f5770..4a96d21 100644
--- a/src/lib/elm_slideshow.c
+++ b/src/lib/elm_slideshow.c
@@ -321,6 +321,8 @@ _elm_slideshow_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
    priv->count_item_pre_before = 2;
    priv->count_item_pre_after = 2;
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    if (!elm_layout_theme_set
        (obj, "slideshow", "base", elm_widget_style_get(obj)))
      CRITICAL("Failed to set layout!");
@@ -386,8 +388,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI Elm_Object_Item *
diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c
index 703aae4..5861c04 100644
--- a/src/lib/elm_spinner.c
+++ b/src/lib/elm_spinner.c
@@ -655,6 +655,8 @@ _elm_spinner_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    priv->val_max = 100.0;
    priv->step = 1.0;
    priv->first_interval = 0.85;
@@ -834,8 +836,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_table.c b/src/lib/elm_table.c
index a125db5..9e68884 100644
--- a/src/lib/elm_table.c
+++ b/src/lib/elm_table.c
@@ -185,6 +185,8 @@ _elm_table_smart_add(Eo *obj, void *_pd EINA_UNUSED, 
va_list *list EINA_UNUSED)
 {
    Evas_Object *table;
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    table = evas_object_table_add(evas_object_evas_get(obj));
    elm_widget_resize_object_set(obj, table);
 
@@ -241,7 +243,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do_super(obj, MY_CLASS, eo_constructor());
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME));
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_thumb.c b/src/lib/elm_thumb.c
index fbda52f..769f399 100644
--- a/src/lib/elm_thumb.c
+++ b/src/lib/elm_thumb.c
@@ -596,6 +596,7 @@ _elm_thumb_smart_add(Eo *obj, void *_pd EINA_UNUSED, 
va_list *list EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
    elm_widget_resize_object_set(obj, elm_layout_add(obj));
 
    if (!elm_layout_theme_set(wd->resize_obj, "thumb", "base",
@@ -663,8 +664,6 @@ _constructor(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
 
    Elm_Thumb_Smart_Data *sd = _pd;
    sd->obj = obj;
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c
index fa1a4e3..fd98804 100644
--- a/src/lib/elm_toolbar.c
+++ b/src/lib/elm_toolbar.c
@@ -2491,6 +2491,8 @@ _elm_toolbar_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
    Elm_Toolbar_Smart_Data *priv = _pd;
    Evas_Object *edje;
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    edje = edje_object_add(evas_object_evas_get(obj));
    elm_widget_resize_object_set(obj, edje);
 
@@ -2747,8 +2749,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI void
diff --git a/src/lib/elm_video.c b/src/lib/elm_video.c
index 445c603..9bdefe7 100644
--- a/src/lib/elm_video.c
+++ b/src/lib/elm_video.c
@@ -251,6 +251,7 @@ _elm_video_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
    elm_widget_can_focus_set(obj, EINA_TRUE);
 
 #ifdef HAVE_EMOTION
@@ -321,8 +322,6 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
-
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 #else
    eo_error_set(obj);
 #endif
diff --git a/src/lib/elm_web.c b/src/lib/elm_web.c
index 0f473e6..432de0f 100644
--- a/src/lib/elm_web.c
+++ b/src/lib/elm_web.c
@@ -242,6 +242,8 @@ _view_smart_add(Evas_Object *obj)
 {
    View_Smart_Data *sd;
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    sd = calloc(1, sizeof(View_Smart_Data));
    evas_object_smart_data_set(obj, sd);
 
@@ -1222,7 +1224,6 @@ _constructor(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_elm_web_smart_callbacks, 
NULL));
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI Evas_Object *
diff --git a/src/lib/elm_web2.c b/src/lib/elm_web2.c
index 0627236..9ac867c 100644
--- a/src/lib/elm_web2.c
+++ b/src/lib/elm_web2.c
@@ -38,6 +38,8 @@ _view_smart_add(Evas_Object *obj)
    sd = calloc(1, sizeof(View_Smart_Data));
    evas_object_smart_data_set(obj, sd);
 
+   elm_widget_sub_object_add(eo_parent_get(obj), obj);
+
    _ewk_view_parent_sc.sc.add(obj);
 }
 
@@ -171,7 +173,6 @@ _constructor(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME),
          evas_obj_smart_callbacks_descriptions_set(_elm_web_smart_callbacks, 
NULL));
-   elm_widget_sub_object_add(eo_parent_get(obj), obj);
 }
 
 EAPI Evas_Object *

-- 

------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk

Reply via email to