From aa3edaa8e6719744aa83ac98c616a07125547b81 Mon Sep 17 00:00:00 2001 From: WooHyun Jung Date: Wed, 12 Dec 2012 08:58:03 +0000 Subject: [PATCH] elementary/naviframe : Restore dummy_edje to naviframe. Now dummy_edje is always smart member of naviframe, so it cannot be removed before deleting naviframe. SVN revision: 80739 --- legacy/elementary/ChangeLog | 4 ++++ legacy/elementary/NEWS | 1 + legacy/elementary/src/lib/elc_naviframe.c | 10 ++++++++++ 3 files changed, 15 insertions(+) diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index 25a76cc118..f6eb52c35c 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/ChangeLog @@ -810,3 +810,7 @@ 2012-12-12 ChunEon Park (Hermet) * Update mapbuf forcely whenever it's states are changed. + +2012-12-12 WooHyun Jung + + * Restore dummy object to elm_naviframe. Now, dummy object is always smart member of naviframe. diff --git a/legacy/elementary/NEWS b/legacy/elementary/NEWS index 28d0503a6a..d97b697ce0 100644 --- a/legacy/elementary/NEWS +++ b/legacy/elementary/NEWS @@ -92,6 +92,7 @@ Fixes: * Don't manipulate dead memory in Eina_Inlist in elm_transit.c. * Remove dummy object from elm_naviframe. * Update mapbuf forcely whenever it's states are changed. + * Restore dummy object to elm_naviframe. Now, dummy object is always smart member of naviframe. Removals: diff --git a/legacy/elementary/src/lib/elc_naviframe.c b/legacy/elementary/src/lib/elc_naviframe.c index 9971d9db58..65e3cbc5b3 100644 --- a/legacy/elementary/src/lib/elc_naviframe.c +++ b/legacy/elementary/src/lib/elc_naviframe.c @@ -466,6 +466,7 @@ _item_del_pre_hook(Elm_Object_Item *it) (sd->stack->last->prev, Elm_Naviframe_Item); sd->stack = eina_inlist_remove(sd->stack, EINA_INLIST_GET(nit)); + if (!sd->stack) elm_widget_resize_object_set(WIDGET(it), sd->dummy_edje); if (top && !sd->on_deletion) /* must raise another one */ { @@ -1243,9 +1244,11 @@ static void _elm_naviframe_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) { Elm_Naviframe_Smart_Data *priv = _pd; + Elm_Widget_Smart_Data *wd = eo_data_get(obj, ELM_OBJ_WIDGET_CLASS); eo_do_super(obj, evas_obj_smart_add()); + priv->dummy_edje = wd->resize_obj; priv->auto_pushed = EINA_TRUE; priv->freeze_events = EINA_TRUE; @@ -1299,6 +1302,8 @@ _elm_naviframe_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED) sd->on_deletion = EINA_FALSE; + evas_object_del(sd->dummy_edje); + eo_do_super(obj, evas_obj_smart_del()); } @@ -1394,6 +1399,7 @@ _item_push(Eo *obj, void *_pd, va_list *list) evas_object_show(VIEW(it)); elm_widget_resize_object_set(obj, VIEW(it)); + evas_object_smart_member_add(sd->dummy_edje, obj); if (prev_it) { @@ -1529,6 +1535,7 @@ _item_insert_after(Eo *obj, void *_pd, va_list *list) if (top_inserted) { elm_widget_resize_object_set(obj, VIEW(it)); + evas_object_smart_member_add(sd->dummy_edje, obj); evas_object_show(VIEW(it)); evas_object_hide(VIEW(after)); } @@ -1580,6 +1587,7 @@ _item_pop(Eo *obj, void *_pd, va_list *list) (sd->stack->last->prev, Elm_Naviframe_Item); sd->stack = eina_inlist_remove(sd->stack, EINA_INLIST_GET(it)); + if (!sd->stack) elm_widget_resize_object_set(obj, sd->dummy_edje); if (prev_it) { @@ -1590,6 +1598,7 @@ _item_pop(Eo *obj, void *_pd, va_list *list) } elm_widget_resize_object_set(obj, VIEW(prev_it)); + evas_object_smart_member_add(sd->dummy_edje, obj); evas_object_raise(VIEW(prev_it)); /* access */ @@ -1667,6 +1676,7 @@ elm_naviframe_item_promote(Elm_Object_Item *it) sd->stack = eina_inlist_demote(sd->stack, EINA_INLIST_GET(nit)); elm_widget_resize_object_set(WIDGET(it), VIEW(nit)); + evas_object_smart_member_add(sd->dummy_edje, WIDGET(it)); /* this was the previous top one */ prev_it = EINA_INLIST_CONTAINER_GET