hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=09f19b7654eebf933d6d4d26ccba0a257e195967
commit 09f19b7654eebf933d6d4d26ccba0a257e195967 Author: Hermet Park <[email protected]> Date: Sun Jul 17 00:40:08 2016 +0900 multi-file: improve a use case. hide a previous preview if a new represent file hans't any viewable group. --- src/lib/edj_mgr.c | 17 +++++++++-------- src/lib/edj_viewer.c | 2 ++ src/lib/enventor_private.h | 2 +- src/lib/enventor_smart.c | 1 + 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/lib/edj_mgr.c b/src/lib/edj_mgr.c index dccae24..6abcc79 100644 --- a/src/lib/edj_mgr.c +++ b/src/lib/edj_mgr.c @@ -156,22 +156,22 @@ edj_mgr_view_new(Enventor_Item *it, const char *group) return vd; } -view_data * +void edj_mgr_view_switch_to(view_data *vd) { edj_mgr *em = g_em; - if (em->edj && (em->edj->vd == vd)) return vd; + if (em->edj && (em->edj->vd == vd)) return; //Switch views Evas_Object *prev = elm_object_part_content_unset(em->layout, "elm.swallow.content"); + elm_object_part_content_set(em->layout, "elm.swallow.content", view_obj_get(vd)); view_scale_set(vd, em->view_scale); - //Switching effect - if (prev && (prev != view_obj_get(vd))) + if (prev != view_obj_get(vd)) { Evas_Object *tmp = elm_object_part_content_unset(em->layout, "elm.swallow.prev"); @@ -186,8 +186,11 @@ edj_mgr_view_switch_to(view_data *vd) //Reset caching timers edj_data *cur_edj = view_data_get(vd); - ecore_timer_del(cur_edj->timer); - cur_edj->timer = NULL; + if (cur_edj) + { + ecore_timer_del(cur_edj->timer); + cur_edj->timer = NULL; + } edj_data *prev_edj = em->edj; if (prev_edj) @@ -197,8 +200,6 @@ edj_mgr_view_switch_to(view_data *vd) prev_edj->vd); } em->edj = view_data_get(vd); - - return vd; } Evas_Object * diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c index 18797d5..6b22dd5 100644 --- a/src/lib/edj_viewer.c +++ b/src/lib/edj_viewer.c @@ -669,6 +669,7 @@ view_term(view_data *vd) Evas_Object * view_obj_get(view_data *vd) { + if (!vd) return NULL; return vd->scroller; } @@ -768,6 +769,7 @@ view_group_name_get(view_data *vd) void * view_data_get(view_data *vd) { + if (!vd) return NULL; return vd->data; } diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h index 18e7e7d..4b6d70c 100644 --- a/src/lib/enventor_private.h +++ b/src/lib/enventor_private.h @@ -172,7 +172,7 @@ void edj_mgr_term(void); view_data * edj_mgr_view_new(Enventor_Item *it, const char *group); view_data *edj_mgr_view_get(Eina_Stringshare *group); Evas_Object * edj_mgr_obj_get(void); -view_data *edj_mgr_view_switch_to(view_data *vd); +void edj_mgr_view_switch_to(view_data *vd); void edj_mgr_view_del(view_data *vd); void edj_mgr_reload_need_set(Eina_Bool reload); Eina_Bool edj_mgr_reload_need_get(void); diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index ab7449b..68dfb19 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -886,6 +886,7 @@ enventor_item_represent(Enventor_Item *it) { edit_view_sync_cb_set(pd->focused_it->ed, NULL, NULL); evas_object_hide(edit_obj_get(pd->focused_it->ed)); + edj_mgr_view_switch_to(NULL); } edit_view_sync_cb_set(it->ed, edit_view_sync_cb, it); --
