summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2018-02-22 15:30:10 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2018-02-22 15:42:40 -0500
commit77b31ba0237a9579ac317f8c1ef3b9a73c17ebd1 (patch)
treedfdbdeae68a3f9a5d41bc18961b3ff385a524f8f
parentcac28eeb7e68134cb8e48eec91407ed1c3727976 (diff)
downloadefl-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.c10
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;
}