summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Michael <cp.michael@samsung.com>2014-11-03 14:46:20 -0500
committerChris Michael <cp.michael@samsung.com>2014-11-03 14:47:14 -0500
commit8a08e176037220682a813453be5730928a8b0c87 (patch)
tree62a37e0f689a727a2a93701ed2f51ff90ba443aa
parent4de0a40d0c618906b02f60bce77c8b7e438fa8a1 (diff)
downloadenlightenment-8a08e176037220682a813453be5730928a8b0c87.tar.gz
e-comp-wl: Implement subsurface parent commit function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
-rw-r--r--src/bin/e_comp_wl.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 33d79d0035..7676d3acd5 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1534,7 +1534,33 @@ unmap:
static void
_e_comp_wl_subsurface_parent_commit(E_Client *ec, Eina_Bool parent_synchronized)
{
+ E_Client *parent;
+ E_Comp_Wl_Subsurf_Data *sdata;
+
+ if (!(sdata = ec->comp_data->sub.data)) return;
+ if (!(parent = sdata->parent)) return;
+
+ if (sdata->position.set)
+ {
+ evas_object_move(ec->frame, parent->x + sdata->position.x,
+ parent->y + sdata->position.y);
+ sdata->position.set = EINA_FALSE;
+ }
+
+ if ((parent_synchronized) || (sdata->synchronized))
+ {
+ E_Client *subc;
+ Eina_List *l;
+ if (sdata->cached.has_data)
+ _e_comp_wl_subsurface_commit_from_cache(ec);
+
+ EINA_LIST_FOREACH(ec->comp_data->sub.list, l, subc)
+ {
+ if (ec != subc)
+ _e_comp_wl_subsurface_parent_commit(subc, EINA_TRUE);
+ }
+ }
}
static void