e_comp_ec_list_unlock();
}
+static void
+_e_comp_object_layers_ec_remove(E_Desk_Area *eda, E_Client *ec)
+{
+ unsigned int layer;
+
+ if (!ec) return;
+
+ e_comp_ec_list_lock();
+
+ for (layer = e_comp_canvas_layer_map(E_LAYER_CLIENT_DESKTOP); layer <= e_comp_canvas_layer_map(E_LAYER_CLIENT_CURSOR); layer++)
+ {
+ if (eda->layers[layer].clients)
+ {
+ if (eina_inlist_find(eda->layers[layer].clients, EINA_INLIST_GET(ec)))
+ {
+ eda->layers[layer].clients = eina_inlist_remove(eda->layers[layer].clients, EINA_INLIST_GET(ec));
+ eda->layers[layer].clients_count--;
+ _e_comp_object_layers_update(layer, E_COMP_INPUT_INLIST_REMOVE, ec, NULL);
+ }
+ }
+ }
+
+ e_comp_ec_list_unlock();
+}
+
static Eina_Bool
_e_comp_object_is_pending(E_Client *ec)
{
if (cw)
_e_comp_object_layers_remove(eda, cw);
else
- ELOGF("EDA", "No Comp Object. Fix Me~!!", ec);
+ {
+ ELOGF("EDA", "No Comp Object. Fix Me~!!", ec);
+ _e_comp_object_layers_ec_remove(eda, ec);
+ }
}
#endif //CLIENT_DEL_STACK_ISSUE
if (cw)
_e_comp_object_layers_remove(eda, cw);
else
- ELOGF("EDA", "No Comp Object. Fix Me~!!", ec);
+ {
+ ELOGF("EDA", "No Comp Object. Fix Me~!!", ec);
+ _e_comp_object_layers_ec_remove(eda, ec);
+ }
#endif // CLIENT_DEL_STACK_ISSUE
_e_desk_area_smart_client_del(eda->smart_obj, ec);