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);
 

-- 


Reply via email to