prevent elm_gengrid_clear() when the app is launched as event layout 35/39535/1 accepted/tizen/tv/20150518.144556 submit/tizen/20150518.114125
authorJehun Lim <jehun.lim@samsung.com>
Mon, 18 May 2015 10:48:14 +0000 (19:48 +0900)
committerJehun Lim <jehun.lim@samsung.com>
Mon, 18 May 2015 11:06:30 +0000 (20:06 +0900)
Change-Id: I700a4243ad33b5ff2d216798983c70a3c4a7c18c
Signed-off-by: Jehun Lim <jehun.lim@samsung.com>
src/view/gallery-view/layout_events.cpp

index 2a5a34e..1b2cb77 100644 (file)
@@ -60,6 +60,7 @@ struct SEventLayout {
        Eina_List *event_list;
        int sort;
 
+       Eina_Bool direct_launch;
        Eina_Bool layout_2ndview;
 
        struct layout_data *ld;
@@ -70,30 +71,6 @@ struct SEventLayout {
        SSortCallbackPair *SortCb;
        SSigCallbackPair *SigCb;
        SMediaCallbackPair *MediaCb;
-
-       SEventLayout() {
-               base = NULL;
-               grid = NULL;
-               current_item = NULL;
-
-               arglist = NULL;
-               media_list = NULL;
-               event_list = NULL;
-               sort = 0;
-
-               layout_2ndview = EINA_FALSE;
-
-               ld = NULL;
-
-               pLayoutMgr = NULL;
-
-               FocusCb = NULL;
-               SortCb = NULL;
-               SigCb = NULL;
-               MediaCb = NULL;
-       }
-
-       ~SEventLayout() {}
 };
 
 char *CEventLayout::sm_CbGridTextGet(void *data, Evas_Object *obj, const char *part)
@@ -506,6 +483,8 @@ void CEventLayout::DirectLaunch(const char *id)
                elm_object_item_focus_set(it, EINA_TRUE);
                m_OnGridActivated(it, NULL, NULL);
        }
+
+       m->direct_launch = EINA_TRUE;
 }
 
 void CEventLayout::Focus(void)
@@ -540,6 +519,11 @@ void CEventLayout::Update(struct layout_data *ld)
 {
        ASSERT(m);
 
+       if (m->direct_launch) {
+               m->direct_launch = EINA_FALSE;
+               return;
+       }
+
        m->arglist = ld->arglist;
        m->sort = ld->sort;
        m->event_list = eina_list_clone(ld->media_list);
@@ -636,6 +620,8 @@ bool CEventLayout::Create(CLayoutMgr *lmgr, void *data)
        if (!m)
                return false;
 
+       memset(m, 0, sizeof(*m));
+
        m->base = lmgr->Base();
        if (!m->base) {
                delete m;