From: Ryuan Choi Date: Wed, 15 Jan 2014 12:44:21 +0000 (+0900) Subject: fileselector_entry: Delay elm_layout_theme_set until memebers are initialized in... X-Git-Tag: v1.9.0-alpha1~196 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e21e2aec2d8c1cf7a778d7a3d6977084c136af00;p=platform%2Fupstream%2Felementary.git 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 --- 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));