From: hermet Date: Tue, 6 Dec 2011 10:53:20 +0000 (+0000) Subject: elementary/naviframe - fixed logic error. X-Git-Tag: REL_F_I9500_20120323_1~17^2~1154 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4b3dc4d64f6022bf9533e08d577db10d0de5640a;p=framework%2Fuifw%2Felementary.git elementary/naviframe - fixed logic error. happened after shilpa's refactoring patch. it caused the elm_naviframe_item_style_set does not work properly. more case-by-case checking added. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@65953 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c index bee68fe..a394c20 100644 --- a/src/lib/elc_naviframe.c +++ b/src/lib/elc_naviframe.c @@ -562,15 +562,22 @@ _title_content_set(Elm_Naviframe_Item *it, EINA_INLIST_FOREACH(it->content_list, pair) if (!strcmp(part, pair->part)) break; - if ((pair) && (pair->content)) + if (!pair) { - if (!content) + if (!content) return; + pair = ELM_NEW(Elm_Naviframe_Content_Item_Pair); + if (!pair) { - evas_object_del(pair->content); - pair->content = NULL; + ERR("Failed to allocate new content part of the item! : naviframe=%p", WIDGET(it)); return; } - if (pair->content == content) return; + pair->it = it; + eina_stringshare_replace(&pair->part, part); + it->content_list = eina_inlist_append(it->content_list, + EINA_INLIST_GET(pair)); + } + if ((pair->content != content) && pair->content) + { evas_object_event_callback_del(pair->content, EVAS_CALLBACK_DEL, _title_content_del); @@ -581,35 +588,26 @@ _title_content_set(Elm_Naviframe_Item *it, snprintf(buf, sizeof(buf), "elm,state,%s,hide", part); edje_object_signal_emit(VIEW(it), buf, "elm"); } - else + if (content) { - if (!content) return; - - pair = ELM_NEW(Elm_Naviframe_Content_Item_Pair); - if (!pair) + if (pair->content != content) { - ERR("Failed to allocate new content part of the item! : naviframe=%p", WIDGET(it)); - return; + elm_widget_sub_object_add(WIDGET(it), content); + evas_object_event_callback_add(content, + EVAS_CALLBACK_DEL, + _title_content_del, + pair); + evas_object_event_callback_add(content, + EVAS_CALLBACK_CHANGED_SIZE_HINTS, + _changed_size_hints, + WIDGET(it)); + pair->content = content; } - pair->it = it; - eina_stringshare_replace(&pair->part, part); - it->content_list = eina_inlist_append(it->content_list, - EINA_INLIST_GET(pair)); + edje_object_part_swallow(VIEW(it), part, content); + snprintf(buf, sizeof(buf), "elm,state,%s,show", part); + edje_object_signal_emit(VIEW(it), buf, "elm"); } - elm_widget_sub_object_add(WIDGET(it), content); - evas_object_event_callback_add(content, - EVAS_CALLBACK_DEL, - _title_content_del, - pair); - evas_object_event_callback_add(content, - EVAS_CALLBACK_CHANGED_SIZE_HINTS, - _changed_size_hints, - WIDGET(it)); - edje_object_part_swallow(VIEW(it), part, content); - snprintf(buf, sizeof(buf), "elm,state,%s,show", part); - edje_object_signal_emit(VIEW(it), buf, "elm"); - pair->content = content; _sizing_eval(WIDGET(it)); }