unsigned int x;
E_Client *ec2;
Eina_Inlist *l;
+ E_Layer ec_layer, ec_layer_cw;
+ int cw_layer;
E_OBJECT_CHECK_RETURN(ec, NULL);
E_OBJECT_TYPE_CHECK_RETURN(ec, E_CLIENT_TYPE, NULL);
}
}
- if (ec->layer == E_LAYER_CLIENT_DESKTOP) return NULL;
- if (e_comp_canvas_client_layer_map(ec->layer) == 9999) return NULL;
+ // check layer validation
+ ec_layer = ec->layer;
+ cw_layer = e_comp_object_layer_get(ec->frame);
+ if (cw_layer >= 0)
+ {
+ ec_layer_cw = e_comp_canvas_layer_map_to(cw_layer);
+ if (ec_layer != ec_layer_cw)
+ {
+ ELOGF("COMP", "LAYER is not same. USE obj layer! (ec->layer:%d, obj:%d). block:%d, pending:%d)", ec, ec_layer, ec_layer_cw, ec->layer_block, ec->layer_pending);
+ ec_layer = ec_layer_cw;
+ }
+ }
+
+ if (ec_layer == E_LAYER_CLIENT_DESKTOP) return NULL;
+ if (e_comp_canvas_client_layer_map(ec_layer) == 9999) return NULL;
/* go down the layers until we find one */
- x = e_comp_canvas_layer_map(ec->layer);
+ x = e_comp_canvas_layer_map(ec_layer);
if (x > 0) x--;
for (; x >= e_comp_canvas_layer_map(E_LAYER_CLIENT_DESKTOP); x--)
if (ec == ec2)
{
ELOGF("FATAL", "EC exist below layer. ec layer_map:%d, cur layer_map:%d",
- ec, e_comp_canvas_layer_map(ec->layer), x);
+ ec, e_comp_canvas_layer_map(ec_layer), x);
continue;
}
if (!e_object_is_del(E_OBJECT(ec2)))
EINTERN void e_comp_object_transform_transp_vertices_set_with_zoom(Evas_Object *obj, E_Util_Transform_Rect_Vertex *vertices, double zoomx, double zoomy, Evas_Coord cx, Evas_Coord cy);
E_API void e_comp_object_layer_update(Evas_Object *obj, Evas_Object *above, Evas_Object *below);
+EINTERN int e_comp_object_layer_get(Evas_Object *obj);
E_API Eina_Bool e_comp_object_content_set(Evas_Object* obj, Evas_Object *content, E_Comp_Object_Content_Type type);
E_API Eina_Bool e_comp_object_content_unset(Evas_Object* obj);