From 7d72dd6c35d023ba5d6f6b3214362dce62785560 Mon Sep 17 00:00:00 2001 From: Ryuan Choi Date: Wed, 15 Jan 2014 21:44:21 +0900 Subject: [PATCH] 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 --- .../elementary/src/lib/elc_fileselector_entry.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/legacy/elementary/src/lib/elc_fileselector_entry.c b/legacy/elementary/src/lib/elc_fileselector_entry.c index fcf0800ae7..3d93712ee7 100644 --- a/legacy/elementary/src/lib/elc_fileselector_entry.c +++ b/legacy/elementary/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));