zmike pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9cfb9aa603776464ade05be1846df56256975525

commit 9cfb9aa603776464ade05be1846df56256975525
Author: SangHyeon Jade Lee <[email protected]>
Date:   Mon Feb 24 08:52:09 2020 -0500

    elm : move unrealize callback call before the content caching.
    
    Summary:
    item edje and contents are cached for performance improvement in genlist & 
gengrid.
    but to provide elm_genlist(gengrid)_all_contents_unset method before the 
contents
    are being cached, unrealize callback must be come before the unrealize 
process.
    
    currently,
    item_unrealize
    1.unrealize process
    2.contents cached
    3.unrealize callback
    4.all_contents_unset : nothing to unset in the item.
    
    by this patch,
    item_unrealize
    1.unrealize callback
    2.all_contents_unset : contents are unset.
    3.unrealize process
    4.contents(null) cached
    
    Reviewers: bu5hm4n, cedric, eagleeye, zmike
    
    Reviewed By: zmike
    
    Subscribers: zmike, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D11402
---
 src/lib/elementary/elm_gengrid.c | 5 +++--
 src/lib/elementary/elm_genlist.c | 3 ++-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c
index df46609880..8a5bccaa2f 100644
--- a/src/lib/elementary/elm_gengrid.c
+++ b/src/lib/elementary/elm_gengrid.c
@@ -1261,12 +1261,13 @@ _elm_gengrid_item_unrealize(Elm_Gen_Item *it,
    ELM_SAFE_FREE(it->states, elm_widget_stringlist_free);
    elm_wdg_item_track_cancel(EO_OBJ(it));
 
+   if (!calc)
+     efl_event_callback_legacy_call(WIDGET(it), ELM_GENGRID_EVENT_UNREALIZED, 
EO_OBJ(it));
+
    it->unrealize_cb(it);
 
    it->realized = EINA_FALSE;
    it->want_unrealize = EINA_FALSE;
-   if (!calc)
-     efl_event_callback_legacy_call(WIDGET(it), ELM_GENGRID_EVENT_UNREALIZED, 
EO_OBJ(it));
 
    {
       ELM_GENGRID_DATA_GET_FROM_ITEM(it, sd);
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 3c586ca1e2..5da1517fc8 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -715,10 +715,11 @@ _elm_genlist_item_unrealize(Elm_Gen_Item *it,
 
    elm_wdg_item_track_cancel(EO_OBJ(it));
 
-   _item_unrealize(it);
    if (!calc)
      efl_event_callback_legacy_call(WIDGET(it), ELM_GENLIST_EVENT_UNREALIZED, 
EO_OBJ(it));
 
+   _item_unrealize(it);
+
    evas_event_thaw(e);
    evas_event_thaw_eval(e);
 }

-- 


Reply via email to