hermet pushed a commit to branch master.

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

commit c9060ca997363dbf80f1b6a362c0c5a7db0e14c7
Author: SangHyeon Jade Lee <[email protected]>
Date:   Wed Sep 19 09:35:06 2018 +0900

    elm_genlist: item scroll show sould be processed after block calculation
    
    Summary:
    there are buggy actions in the item show api,
    when the list is launched, scroll to far distance item.
    the reason is item_scroll is called before it's block is fully
    calculated in calc_job().
    the origin patch of cause the issue is
    f6b66cc1d3b94bedc25cb10bd5317855954af973
    by raster in 28 Nov, 2013
    but we already do some extra works in calc_job(),
    so the code is not necessarily called in queue_process().
    
    more detail descriptions :
    mainly this caused by block width size,
    so the normal case block width is zero, and item_scroll() will be dismissed,
    and deferred action in calc_job(), but in issue case,
    block width is already been set, so it can scroll the item directly though
    they aren't properly calculated yet.
    
    most cases block was generated in the same queue processing so width size is
    not exist, but in issue cases, they re-using the block which was already 
been
    generated by previous queue processing, so the width size is already exist,
    but height is not properly calculated yet.
    
    we could move the block height calculation and min/max calculation
    in the queue processing, but I'm afraid to face side effect,
    so removing item_scroll() call is best option that I got.
    
    Test Plan:
    I'll upload some sample file my_genlist_example_4.c,
    so please do a test with this.
    issue is reproduced very rarely, but I could see the issue within 20 times 
try.
    
    {F3300793}
    
    Reviewers: raster, eagleeye, Hermet, singh.amitesh, #reviewers
    
    Reviewed By: Hermet, #reviewers
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D6952
---
 src/lib/elementary/elm_genlist.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 974cf7ea93..c6469d7456 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -4787,7 +4787,6 @@ _queue_process(Elm_Genlist_Data *sd)
              if ((t - t0) > (ecore_animator_frametime_get())) break;
           }
      }
-   if (!sd->queue) _item_scroll(sd);
    return n;
 }
 

-- 


Reply via email to