diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index 5eb48c43e6..ac525fd329 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -3098,6 +3098,17 @@ _ecore_evas_register(Ecore_Evas *ee) evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST, _evas_evas_buffer_rendered, ee); } +void +_ecore_evas_subregister(Ecore_Evas *ee_target, Ecore_Evas *ee) +{ + _ecore_evas_register_animators(ee); + + ee_target->sub_ecore_evas = eina_list_append(ee_target->sub_ecore_evas, ee); + + if (!ee->engine.func->fn_render) + evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST, _evas_evas_buffer_rendered, ee); +} + EAPI void _ecore_evas_ref(Ecore_Evas *ee) { diff --git a/src/lib/ecore_evas/ecore_evas_private.h b/src/lib/ecore_evas/ecore_evas_private.h index d6fd15d904..3bfacdc469 100644 --- a/src/lib/ecore_evas/ecore_evas_private.h +++ b/src/lib/ecore_evas/ecore_evas_private.h @@ -390,6 +390,7 @@ EAPI void _ecore_evas_fps_debug_init(void); EAPI void _ecore_evas_fps_debug_shutdown(void); EAPI void _ecore_evas_fps_debug_rendertime_add(double t); EAPI void _ecore_evas_register(Ecore_Evas *ee); +void _ecore_evas_subregister(Ecore_Evas *ee_target, Ecore_Evas *ee); EAPI void _ecore_evas_register_animators(Ecore_Evas *ee); EAPI void _ecore_evas_free(Ecore_Evas *ee); EAPI void _ecore_evas_idle_timeout_update(Ecore_Evas *ee);