summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2016-07-19 13:05:28 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2016-07-19 13:43:59 -0400
commit5f9cbb1446268e893b2c3932ec5097103f0365db (patch)
treeeffd0a0a4097ee91258d9025fe1b0e0a219bb1d0
parent3e74bcb3d319d3985377159af06ced789c6213e9 (diff)
downloadenlightenment-5f9cbb1446268e893b2c3932ec5097103f0365db.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.c4
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)