From 77b31ba0237a9579ac317f8c1ef3b9a73c17ebd1 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 22 Feb 2018 15:30:10 -0500 Subject: [PATCH] evas event_grabber: fix child ordering when adding non-top children another ref 0516cdc0f9dc0969ac96df6984af2413680cad01 @fix --- src/lib/evas/canvas/efl_canvas_object_event_grabber.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/efl_canvas_object_event_grabber.c b/src/lib/evas/canvas/efl_canvas_object_event_grabber.c index ddf31c90ba..01851897e9 100644 --- a/src/lib/evas/canvas/efl_canvas_object_event_grabber.c +++ b/src/lib/evas/canvas/efl_canvas_object_event_grabber.c @@ -123,13 +123,21 @@ _child_insert(Efl_Object_Event_Grabber_Data *pd, Evas_Object_Protected_Data *obj if (a->layer->layer > obj->layer->layer) continue; if (a->layer->layer < obj->layer->layer) { + /* new object is higher layer than 'a' */ found = EINA_TRUE; break; } EINA_INLIST_FOREACH(EINA_INLIST_GET(a->layer->objects), i) { - if (a == i || obj == i) + if (obj == i) { + /* new object is below 'a' */ + pd->contained = eina_list_prepend_relative(pd->contained, obj, a); + return; + } + else if (a == i) + { + /* new object is above 'a' */ found = EINA_TRUE; break; }