ryuan pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=e21e2aec2d8c1cf7a778d7a3d6977084c136af00

commit e21e2aec2d8c1cf7a778d7a3d6977084c136af00
Author: Ryuan Choi <ryuan.c...@gmail.com>
Date:   Wed Jan 15 21:44:21 2014 +0900

    fileselector_entry: Delay elm_layout_theme_set until memebers are 
initialized in _smart_add
    
    Summary:
    elm_layout_theme_set can call some methods like _smart_disable and there 
are some warnings
    when these methods manipulate some member variabls which are not 
initialized yet.
    It's because elm_layout_theme_set is called too early in _smart_add.
    
    Spotted while digging warnings after rELM4c3e23de9e46
    
    Reviewers: seoz, raster
    
    Reviewed By: seoz
    
    Differential Revision: https://phab.enlightenment.org/D459
---
 src/lib/elc_fileselector_entry.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/lib/elc_fileselector_entry.c b/src/lib/elc_fileselector_entry.c
index fcf0800..3d93712 100644
--- a/src/lib/elc_fileselector_entry.c
+++ b/src/lib/elc_fileselector_entry.c
@@ -349,15 +349,10 @@ _elm_fileselector_entry_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_parent_add(obj);
 
-   if (!elm_layout_theme_set
-       (obj, "fileselector_entry", "base", elm_widget_style_get(obj)))
-     CRI("Failed to set layout!");
-
    priv->button = elm_fileselector_button_add(obj);
    elm_widget_mirrored_automatic_set(priv->button, EINA_FALSE);
    elm_widget_style_set(priv->button, "fileselector_entry/default");
 
-   elm_layout_content_set(obj, "elm.swallow.button", priv->button);
    elm_fileselector_button_expandable_set
      (priv->button, _elm_config->fileselector_expand_enable);
 
@@ -374,7 +369,6 @@ _elm_fileselector_entry_smart_add(Eo *obj, void *_pd, 
va_list *list EINA_UNUSED)
    elm_widget_style_set(priv->entry, "fileselector_entry/default");
    elm_entry_single_line_set(priv->entry, EINA_TRUE);
    elm_entry_editable_set(priv->entry, EINA_TRUE);
-   elm_layout_content_set(obj, "elm.swallow.entry", priv->entry);
 
 #define SIG_FWD(name) \
   evas_object_smart_callback_add(priv->entry, SIG_##name, _##name##_fwd, obj)
@@ -391,6 +385,15 @@ _elm_fileselector_entry_smart_add(Eo *obj, void *_pd, 
va_list *list EINA_UNUSED)
    SIG_FWD(SELECTION_CUT);
 #undef SIG_FWD
 
+   if (!elm_layout_theme_set
+       (obj, "fileselector_entry", "base", elm_widget_style_get(obj)))
+     CRI("Failed to set layout!");
+   else
+     {
+        elm_layout_content_set(obj, "elm.swallow.button", priv->button);
+        elm_layout_content_set(obj, "elm.swallow.entry", priv->entry);
+     }
+
    elm_widget_can_focus_set(obj, EINA_FALSE);
 
    _mirrored_set(obj, elm_widget_mirrored_get(obj));

-- 


Reply via email to