devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8a08e176037220682a813453be5730928a8b0c87
commit 8a08e176037220682a813453be5730928a8b0c87 Author: Chris Michael <cp.mich...@samsung.com> Date: Mon Nov 3 14:46:20 2014 -0500 e-comp-wl: Implement subsurface parent commit function Signed-off-by: Chris Michael <cp.mich...@samsung.com> --- src/bin/e_comp_wl.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 33d79d0..7676d3a 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 --