}
static Eina_Bool
+_rotation_effect_cb_client_hide(void *data, int ev_type, void *event)
+{
+ E_Event_Client *ev = event;
+ E_Client *ec;
+ Rotation_Effect *effect;
+ E_Desk *desk;
+
+ ec = ev->ec;
+ if (!ec) return ECORE_CALLBACK_PASS_ON;
+
+ effect = (Rotation_Effect *)data;
+ if (!effect) return ECORE_CALLBACK_PASS_ON;
+ if (!effect->ctx_begin) return ECORE_CALLBACK_PASS_ON;
+ if (!effect->waiting_list) return ECORE_CALLBACK_PASS_ON;
+
+ effect->waiting_list = eina_list_remove(effect->waiting_list, ec);
+ if (effect->waiting_list) return ECORE_CALLBACK_PASS_ON;
+
+ if (!effect->wait_for_buffer) return ECORE_CALLBACK_PASS_ON;
+
+ if (!effect->ctx_end)
+ {
+ desk = e_desk_current_get(ec->zone);
+ _rotation_effect_animator_end_prepare(effect, desk);
+ }
+ if (effect->ctx_end) _rotation_effect_start(effect);
+
+ return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool
_rotation_effect_cb_client_remove(void *data, int ev_type, void *event)
{
E_Event_Client *ev = event;
_rotation_effect_cb_buffer_change, rotation_zone->effect);
E_LIST_HANDLER_APPEND(rotation_zone->event_hdlrs,
+ E_EVENT_CLIENT_HIDE,
+ _rotation_effect_cb_client_hide, rotation_zone->effect);
+
+ E_LIST_HANDLER_APPEND(rotation_zone->event_hdlrs,
E_EVENT_CLIENT_REMOVE,
_rotation_effect_cb_client_remove, rotation_zone->effect);