if (e_pixmap_free(ec->pixmap))
e_pixmap_client_set(ec->pixmap, NULL);
ec->pixmap = NULL;
+
+ e_client_visibility_calculate();
}
///////////////////////////////////////////
_e_client_hook_call(E_CLIENT_HOOK_MOVE_UPDATE, ec);
e_remember_update(ec);
ec->pre_cb.x = x; ec->pre_cb.y = y;
+
+ e_client_visibility_calculate();
}
static void
_e_client_hook_call(E_CLIENT_HOOK_RESIZE_UPDATE, ec);
e_remember_update(ec);
ec->pre_cb.w = w; ec->pre_cb.h = h;
+
+ e_client_visibility_calculate();
}
static void
if (ec->unredirected_single) return;
e_remember_update(ec);
_e_client_event_simple(ec, E_EVENT_CLIENT_STACK);
+
+ e_client_visibility_calculate();
}
////////////////////////////////////////////////
/* check e_client and skip e_clients not intersects with zone */
if (!ec) continue;
+ if (e_object_is_del(E_OBJECT(ec))) continue;
if (e_client_util_ignored_get(ec)) continue;
if (ec->zone != zone) continue;
if (!E_INTERSECTS(ec->x, ec->y, ec->w, ec->h,
}
EAPI void
-e_client_visibility_calculate(E_Client *ec)
+e_client_visibility_calculate(void)
{
E_Zone *zone;
Eina_List *zl;
- if (e_object_is_del(E_OBJECT(ec))) return;
-
EINA_LIST_FOREACH(e_comp->zones, zl, zone)
{
_e_client_visibility_zone_calculate(zone);
if (client_type != _e_client_type_get(ec))
_e_client_event_property(ec, E_CLIENT_PROPERTY_CLIENT_TYPE);
- /* calculate visibility of the client" */
- e_client_visibility_calculate(ec);
-
/* PRE_POST_FETCH calls e_remember apply for new client */
if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_PRE_POST_FETCH, ec)) continue;
if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_POST_FETCH, ec)) continue;
}
if (ec->changed)
- _e_client_eval(ec);
+ {
+ _e_client_eval(ec);
+
+ /* calculate visibility of clients */
+ e_client_visibility_calculate();
+ }
if ((ec->changes.visible) && (ec->visible) && (!ec->changed))
{
EAPI Eina_Bool e_client_desk_window_profile_available_check(E_Client *ec, const char *profile);
EAPI void e_client_desk_window_profile_wait_desk_set(E_Client *ec, E_Desk *desk);
EAPI void e_client_layout_cb_set(E_Client_Layout_Cb cb);
-EAPI void e_client_visibility_calculate(E_Client *ec);
+EAPI void e_client_visibility_calculate(void);
YOLO EAPI void e_client_focus_stack_set(Eina_List *l);
if (evas_object_data_get(cw->smart_obj, "effect_running"))
{
evas_object_data_del(cw->smart_obj, "effect_running");
- e_client_visibility_calculate(cw->ec);
+ e_client_visibility_calculate();
}
end_cb = evas_object_data_get(obj, "_e_comp.end_cb");
if (evas_object_data_get(cw->smart_obj, "effect_running"))
{
evas_object_data_del(cw->smart_obj, "effect_running");
- e_client_visibility_calculate(cw->ec);
+ e_client_visibility_calculate();
}
}