parent = ec1->comp_data->sub.data->parent;
+ if (parent == ec2)
+ return EINA_TRUE;
+
EINA_LIST_FOREACH(parent->comp_data->sub.list_pending, l, sibling)
{
if ((sibling != ec1) && (sibling == ec2))
if (e_object_is_del(E_OBJECT(ec)) || !ec->comp_data) 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;
if (e_object_is_del(E_OBJECT(parent)) || !parent->comp_data) return;
+ /* try to get the client from the sibling resource */
+ if (!(ecs = wl_resource_get_user_data(sibling_resource))) return;
+
if (!_subsurface_sibling_check(ec, ecs))
{
wl_resource_post_error(ec->comp_data->sub.data->resource,
return;
}
+ if (!ecs->comp_data->sub.data) return;
+
parent->comp_data->sub.list_pending =
eina_list_remove(parent->comp_data->sub.list_pending, ec);
if (e_object_is_del(E_OBJECT(ec)) || !ec->comp_data) 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;
if (e_object_is_del(E_OBJECT(parent)) || !parent->comp_data) return;
+ /* try to get the client from the sibling resource */
+ if (!(ecs = wl_resource_get_user_data(sibling_resource))) return;
+
if (!_subsurface_sibling_check(ec, ecs))
{
wl_resource_post_error(ec->comp_data->sub.data->resource,
return;
}
+ if (!ecs->comp_data->sub.data) return;
+
parent->comp_data->sub.list_pending =
eina_list_remove(parent->comp_data->sub.list_pending, ec);