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
This commit is contained in:
SangHyeon Jade Lee 2020-02-24 08:52:09 -05:00 committed by Mike Blumenkrantz
parent 9dfcd5f9ec
commit 9cfb9aa603
2 changed files with 5 additions and 3 deletions

View File

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

View File

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