diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 5d8603815..f8ff7beb1 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -5626,6 +5626,16 @@ _e_comp_win_effect_end_cb(void *data EINA_UNUSED, Evas_Object *obj, const char * edje_object_signal_callback_del_full(obj, "e,action,done", "e", _e_comp_win_effect_end_cb, NULL); } +EAPI void +e_comp_win_effect_clip(E_Comp_Win *cw) +{ + EINA_SAFETY_ON_NULL_RETURN(cw); + if (!cw->bd->zone) return; + if (cw->effect_clip) e_comp_win_effect_unclip(cw); + evas_object_clip_set(cw->effect_obj, cw->bd->zone->bg_clip_object); + cw->effect_clip = 1; +} + EAPI void e_comp_win_effect_unclip(E_Comp_Win *cw) { diff --git a/src/bin/e_comp.h b/src/bin/e_comp.h index ff4b06a4d..fc043be4b 100644 --- a/src/bin/e_comp.h +++ b/src/bin/e_comp.h @@ -236,6 +236,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_clip(E_Comp_Win *cw); 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);