diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2016-07-19 13:05:28 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2016-07-19 14:17:01 -0400 |
commit | 9312ecb4349c99ac79f4fcc8448e9975da2b85cc (patch) | |
tree | 53fe1dfe0e217add108ba7274a8529e868ca2afa | |
parent | 38ec80896be5f0fb7a3e142c8f4a8acaf5dc0750 (diff) | |
download | enlightenment-9312ecb4349c99ac79f4fcc8448e9975da2b85cc.tar.gz |
set/unset smart parent as e_widget when adding sub-objects
in the case where there is no smart parent, this fixes the object tree
and resolves some stacking issues. if there is a parent or a parent is added
later, nothing is changed
fixes eg. screenshot preview visibility in wayland
-rw-r--r-- | src/bin/e_widget.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/bin/e_widget.c b/src/bin/e_widget.c index ac898ddf62..91cdd953b4 100644 --- a/src/bin/e_widget.c +++ b/src/bin/e_widget.c @@ -164,6 +164,8 @@ e_widget_sub_object_add(Evas_Object *obj, Evas_Object *sobj) { if (e_widget_can_focus_get(sobj)) sd->child_can_focus = 1; } + if (!evas_object_smart_parent_get(sobj)) + evas_object_smart_member_add(sobj, obj); if (strcmp(evas_object_type_get(sobj), SMART_NAME)) return; sd = evas_object_smart_data_get(sobj); @@ -179,6 +181,8 @@ E_API void e_widget_sub_object_del(Evas_Object *obj, Evas_Object *sobj) { API_ENTRY return; + if (evas_object_smart_parent_get(sobj) == obj) + evas_object_smart_member_del(sobj); evas_object_event_callback_del(sobj, EVAS_CALLBACK_DEL, _sub_obj_del); sd->subobjs = eina_list_remove(sd->subobjs, sobj); if (!sd->child_can_focus) |