hermet pushed a commit to branch master.

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

commit 052f562c42a9ad1393e13a2f61e69015f113ee52
Author: Hermet Park <[email protected]>
Date:   Fri Apr 24 21:00:39 2020 +0900

    canvas layer: find the top item for only valids.
    
    In some case, top layer doesn't have valid objects,
    That case, we must find and return top object in the next layer.
---
 src/lib/evas/canvas/evas_stack.x | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/lib/evas/canvas/evas_stack.x b/src/lib/evas/canvas/evas_stack.x
index 914d04731e..333932f4bd 100644
--- a/src/lib/evas/canvas/evas_stack.x
+++ b/src/lib/evas/canvas/evas_stack.x
@@ -400,8 +400,9 @@ _evas_canvas_object_top_get(const Eo *eo_e EINA_UNUSED, 
Evas_Public_Data *e)
    list = EINA_INLIST_GET(e->layers);
    if (!list) return NULL;
 
-   layer = (Evas_Layer *) list->last;
-   if (!layer) return NULL;
+   //just in case if layer has no valid objects in the list.
+   EINA_INLIST_REVERSE_FOREACH(list, layer)
+     if (layer->objects) break;
 
    list = EINA_INLIST_GET(layer->objects);
    if (!list) return NULL;

-- 


Reply via email to