diff options
author | Chris Michael <cp.michael@samsung.com> | 2014-11-03 14:46:20 -0500 |
---|---|---|
committer | Chris Michael <cp.michael@samsung.com> | 2014-11-03 14:47:14 -0500 |
commit | 8a08e176037220682a813453be5730928a8b0c87 (patch) | |
tree | 62a37e0f689a727a2a93701ed2f51ff90ba443aa | |
parent | 4de0a40d0c618906b02f60bce77c8b7e438fa8a1 (diff) | |
download | enlightenment-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.c | 26 |
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 |