add e_comp_win_effect_unclip() to unclip an effect object after a transition

This commit is contained in:
Mike Blumenkrantz 2013-04-22 13:56:48 +01:00
parent 1ff1b21563
commit b04d2dfc4b
2 changed files with 10 additions and 7 deletions

View File

@ -5513,19 +5513,21 @@ _e_comp_win_effect_end_cb(void *data EINA_UNUSED, Evas_Object *obj, const char *
{ {
Edje_Signal_Cb end_cb; Edje_Signal_Cb end_cb;
void *end_data; void *end_data;
E_Comp_Win *cw;
end_cb = evas_object_data_get(obj, "_e_comp.end_cb"); end_cb = evas_object_data_get(obj, "_e_comp.end_cb");
end_data = evas_object_data_get(obj, "_e_comp.end_data"); end_data = evas_object_data_get(obj, "_e_comp.end_data");
end_cb(end_data, obj, emission, source); end_cb(end_data, obj, emission, source);
edje_object_signal_callback_del_full(obj, "e,action,done", "e", _e_comp_win_effect_end_cb, NULL); edje_object_signal_callback_del_full(obj, "e,action,done", "e", _e_comp_win_effect_end_cb, NULL);
cw = evas_object_data_get(obj, "comp_win"); }
if (cw->effect_clip)
{ EAPI void
evas_object_clip_unset(cw->effect_obj); e_comp_win_effect_unclip(E_Comp_Win *cw)
cw->effect_clip = 0; {
} EINA_SAFETY_ON_NULL_RETURN(cw);
if (!cw->effect_clip) return;
evas_object_clip_unset(cw->effect_obj);
cw->effect_clip = 0;
} }
EAPI void EAPI void

View File

@ -238,6 +238,7 @@ EAPI void e_comp_win_effect_set(E_Comp_Win *cw, const char *effect);
EAPI void e_comp_win_effect_params_set(E_Comp_Win *cw, int id, int *params, unsigned int count); EAPI void e_comp_win_effect_params_set(E_Comp_Win *cw, int id, int *params, unsigned int count);
EAPI void e_comp_win_effect_start(E_Comp_Win *cw, Edje_Signal_Cb end_cb, const void *end_data); EAPI void e_comp_win_effect_start(E_Comp_Win *cw, Edje_Signal_Cb end_cb, const void *end_data);
EAPI void e_comp_win_effect_stop(E_Comp_Win *cw, Edje_Signal_Cb end_cb); EAPI void e_comp_win_effect_stop(E_Comp_Win *cw, Edje_Signal_Cb end_cb);
EAPI void e_comp_win_effect_unclip(E_Comp_Win *cw);
EAPI E_Comp_Win *e_comp_win_find_client_win(Ecore_X_Window win); EAPI E_Comp_Win *e_comp_win_find_client_win(Ecore_X_Window win);
EAPI E_Comp_Win *e_comp_win_find(Ecore_X_Window win); EAPI E_Comp_Win *e_comp_win_find(Ecore_X_Window win);