diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 0dcff5f07..311e6025b 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -5513,19 +5513,21 @@ _e_comp_win_effect_end_cb(void *data EINA_UNUSED, Evas_Object *obj, const char * { Edje_Signal_Cb end_cb; void *end_data; - E_Comp_Win *cw; end_cb = evas_object_data_get(obj, "_e_comp.end_cb"); end_data = evas_object_data_get(obj, "_e_comp.end_data"); 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); - cw = evas_object_data_get(obj, "comp_win"); - if (cw->effect_clip) - { - evas_object_clip_unset(cw->effect_obj); - cw->effect_clip = 0; - } +} + +EAPI void +e_comp_win_effect_unclip(E_Comp_Win *cw) +{ + EINA_SAFETY_ON_NULL_RETURN(cw); + if (!cw->effect_clip) return; + evas_object_clip_unset(cw->effect_obj); + cw->effect_clip = 0; } EAPI void diff --git a/src/bin/e_comp.h b/src/bin/e_comp.h index 9a49c7f6e..ae337a2e7 100644 --- a/src/bin/e_comp.h +++ b/src/bin/e_comp.h @@ -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_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_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(Ecore_X_Window win);