diff --git a/src/bin/e_manager.c b/src/bin/e_manager.c index 28c2e58f8..1eba90e4e 100644 --- a/src/bin/e_manager.c +++ b/src/bin/e_manager.c @@ -557,6 +557,12 @@ e_manager_comp_src_list(E_Manager *man) return man->comp->func.src_list_get(man->comp->data, man); } +EAPI E_Manager_Comp_Source* +e_manager_comp_border_src_get(E_Manager *man, Ecore_X_Window win) +{ + return man->comp->func.border_src_get(man->comp->data, man, win); +} + EAPI E_Manager_Comp_Source* e_manager_comp_src_get(E_Manager *man, Ecore_X_Window win) { diff --git a/src/bin/e_manager.h b/src/bin/e_manager.h index a11f239bb..3b332e6a0 100644 --- a/src/bin/e_manager.h +++ b/src/bin/e_manager.h @@ -42,6 +42,7 @@ struct _E_Manager_Comp void (*src_hidden_set) (void *data, E_Manager *man, E_Manager_Comp_Source *src, Eina_Bool hidden); Eina_Bool (*src_hidden_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src); E_Manager_Comp_Source * (*src_get) (void *data, E_Manager *man, Ecore_X_Window win); + E_Manager_Comp_Source * (*border_src_get) (void *data, E_Manager *man, Ecore_X_Window win); E_Popup * (*src_popup_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src); E_Border * (*src_border_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src); Ecore_X_Window (*src_window_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src); @@ -126,6 +127,7 @@ EAPI void e_manager_comp_event_src_del_send(E_Manager *man, E_Manage EAPI void e_manager_comp_event_src_config_send(E_Manager *man, E_Manager_Comp_Source *src, void (*afterfunc) (void *data, E_Manager *man, E_Manager_Comp_Source *src), void *data); EAPI void e_manager_comp_event_src_visibility_send(E_Manager *man, E_Manager_Comp_Source *src, void (*afterfunc) (void *data, E_Manager *man, E_Manager_Comp_Source *src), void *data); EAPI E_Manager_Comp_Source *e_manager_comp_src_get(E_Manager *man, Ecore_X_Window win); +EAPI E_Manager_Comp_Source *e_manager_comp_border_src_get(E_Manager *man, Ecore_X_Window win); EAPI E_Popup *e_manager_comp_src_popup_get(E_Manager *man, E_Manager_Comp_Source *src); EAPI E_Border *e_manager_comp_src_border_get(E_Manager *man, E_Manager_Comp_Source *src); EAPI Ecore_X_Window e_manager_comp_src_window_get(E_Manager *man, E_Manager_Comp_Source *src); diff --git a/src/modules/comp/e_mod_comp.c b/src/modules/comp/e_mod_comp.c index 0a56a4192..7d31cd1a3 100644 --- a/src/modules/comp/e_mod_comp.c +++ b/src/modules/comp/e_mod_comp.c @@ -3026,6 +3026,14 @@ _e_mod_comp_update_func(void *data, _e_mod_comp_render_queue(c); } +static E_Manager_Comp_Source * +_e_mod_comp_border_src_get_func(void *data __UNUSED__, + E_Manager *man __UNUSED__, + Ecore_X_Window win) +{ + return (E_Manager_Comp_Source *)_e_mod_comp_border_client_find(win); +} + static E_Manager_Comp_Source * _e_mod_comp_src_get_func(void *data __UNUSED__, E_Manager *man __UNUSED__, @@ -3338,6 +3346,7 @@ _e_mod_comp_add(E_Manager *man) c->comp.func.evas_get = _e_mod_comp_evas_get_func; c->comp.func.update = _e_mod_comp_update_func; c->comp.func.src_get = _e_mod_comp_src_get_func; + c->comp.func.border_src_get = _e_mod_comp_border_src_get_func; c->comp.func.src_list_get = _e_mod_comp_src_list_get_func; c->comp.func.src_image_get = _e_mod_comp_src_image_get_func; c->comp.func.src_shadow_get = _e_mod_comp_src_shadow_get_func;