e-comp-wl: Implement subsurface place_below function

Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
Chris Michael 2014-11-03 11:45:47 -05:00
parent dd983b2e79
commit ff77a2fa08
1 changed files with 23 additions and 0 deletions

View File

@ -1338,7 +1338,30 @@ _e_comp_wl_subsurface_cb_place_above(struct wl_client *client EINA_UNUSED, struc
static void
_e_comp_wl_subsurface_cb_place_below(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *sibling_resource)
{
E_Client *ec, *ecs;
E_Client *parent;
DBG("Subsurface Cb Place Below: %d", wl_resource_get_id(resource));
/* try to get the client from resource data */
if (!(ec = wl_resource_get_user_data(resource))) return;
if (!ec->comp_data->sub.data) return;
/* try to get the client from the sibling resource */
if (!(ecs = wl_resource_get_user_data(sibling_resource))) return;
if (!ecs->comp_data->sub.data) return;
if (!(parent = ec->comp_data->sub.data->parent)) return;
parent->comp_data->sub.list =
eina_list_remove(parent->comp_data->sub.list, ec);
parent->comp_data->sub.list =
eina_list_prepend_relative(parent->comp_data->sub.list, ec, sibling);
parent->comp_data->sub.restack_target = parent;
}
static void