naviframe: Fix smart_show function to show only top item view
authorJaehyun Cho <jae_hyun.cho@samsung.com>
Fri, 7 Mar 2014 02:12:06 +0000 (11:12 +0900)
committerChunEon Park <hermet@hermet.pe.kr>
Fri, 7 Mar 2014 02:17:32 +0000 (11:17 +0900)
Summary:
Now if evas_object_show is called for naviframe, all item views are shown.
This may cause the previous item view is overlapped to the top item view.
To resolve this problem, fix smart_show of naviframe to show only top item view.
@fix

Reviewers: Hermet

CC: seoz
Differential Revision: https://phab.enlightenment.org/D594

src/lib/elc_naviframe.c

index a9a453ea8cd262b6891b8737bc34a264b7754d27..e39e2f9296cba4d7aa1b432021935c3e06b3f494 100644 (file)
@@ -1406,6 +1406,17 @@ _elm_naviframe_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
    eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
 }
 
+//Show only the top item view
+static void
+_elm_naviframe_smart_show(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+{
+   Elm_Naviframe_Item *top;
+
+   top = (Elm_Naviframe_Item *)elm_naviframe_top_item_get(obj);
+   if (top && !top->delete_me)
+     evas_object_show(VIEW(top));
+}
+
 static void
 _elm_naviframe_smart_event(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
 {
@@ -2133,6 +2144,7 @@ _class_constructor(Eo_Class *klass)
 
         EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _elm_naviframe_smart_add),
         EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_naviframe_smart_del),
+        EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_SHOW), _elm_naviframe_smart_show),
 
         EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_naviframe_smart_focus_next_manager_is),
         EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_NEXT), _elm_naviframe_smart_focus_next),