diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2018-02-22 15:30:10 -0500 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2018-02-22 15:42:40 -0500 |
commit | 77b31ba0237a9579ac317f8c1ef3b9a73c17ebd1 (patch) | |
tree | dfdbdeae68a3f9a5d41bc18961b3ff385a524f8f | |
parent | cac28eeb7e68134cb8e48eec91407ed1c3727976 (diff) | |
download | efl-77b31ba0237a9579ac317f8c1ef3b9a73c17ebd1.tar.gz |
evas event_grabber: fix child ordering when adding non-top children
another ref 0516cdc0f9dc0969ac96df6984af2413680cad01
@fix
-rw-r--r-- | src/lib/evas/canvas/efl_canvas_object_event_grabber.c | 10 |
1 files changed, 9 insertions, 1 deletions
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; } |