2016-04-19 8:01 GMT+02:00 SangHyeon Lee <[email protected]>:

> sanghyeonlee pushed a commit to branch master.
>
>
> http://git.enlightenment.org/core/efl.git/commit/?id=b48d3eb04e4475cf160deedaa3791834fa67ac9f
>
> commit b48d3eb04e4475cf160deedaa3791834fa67ac9f
> Author: SangHyeon Lee <[email protected]>
> Date:   Tue Apr 19 14:57:41 2016 +0900
>
>     genlist: recalc item size after item content field updated
>
>     Summary :
>     after item content fields updated, item and block should be
>     recalculated about it's height because content size can be updated.
>     if do not recaculate, items can be overlapped.
>

Is this needed also in the case of an homogeneous genlist? reading
the commit msg seems it only affect height calculation, that is
not needed (and really costly) in homogeneous mode.


>
>     @fix
> ---
>  src/lib/elementary/elm_genlist.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/src/lib/elementary/elm_genlist.c
> b/src/lib/elementary/elm_genlist.c
> index 1e8ec97..eccb493 100644
> --- a/src/lib/elementary/elm_genlist.c
> +++ b/src/lib/elementary/elm_genlist.c
> @@ -7083,8 +7083,9 @@ _elm_genlist_item_fields_update(Eo *eo_item
> EINA_UNUSED, Elm_Gen_Item *it,
>                                     &GL_IT(it)->deco_all_contents,
>                                     "contents", parts);
>            }
> -        if (it->has_contents != (!!it->contents))
> -          it->item->mincalcd = EINA_FALSE;
> +        //forcely recalc about item because even same content, size can
> be changed.
> +        it->item->mincalcd = EINA_FALSE;
> +        it->item->block->must_recalc = EINA_TRUE;
>          it->has_contents = !!it->contents;
>          if (it->item->type == ELM_GENLIST_ITEM_NONE)
>            {
> @@ -7101,7 +7102,10 @@ _elm_genlist_item_fields_update(Eo *eo_item
> EINA_UNUSED, Elm_Gen_Item *it,
>       _item_state_realize(it, VIEW(it), parts);
>
>     if (!it->item->mincalcd)
> -     elm_genlist_item_update(eo_item);
> +     {
> +        ELM_SAFE_FREE(it->item->wsd->calc_job, ecore_job_del);
> +        it->item->wsd->calc_job = ecore_job_add(_calc_job,
> it->item->wsd->obj);
> +     }
>  }
>
>  EOLIAN static void
>
> --
>
>
>
------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to