static Eina_Inlist *_e_main_hooks[] =
{
[E_MAIN_HOOK_MODULE_LOAD_DONE] = NULL,
- [E_MAIN_HOOK_E_INFO_READY] = NULL
+ [E_MAIN_HOOK_E_INFO_READY] = NULL,
+ [E_MAIN_HOOK_POST_CLIENT_IDLER_BEFORE] = NULL
};
/* external variables */
_e_main_cb_idle_before(void *data EINA_UNUSED)
{
e_client_idler_before();
+ _e_main_hook_call(E_MAIN_HOOK_POST_CLIENT_IDLER_BEFORE, NULL);
edje_thaw();
+
return ECORE_CALLBACK_RENEW;
}
return EINA_TRUE;
}
-static Eina_Bool
-_e_video_hwc_idle_enterer(void *data)
+static void
+_e_video_hwc_cb_post_client_idler_before(void *data)
{
E_Video_Hwc *evh;
E_Client *topmost;
}
}
- /* The idle enterer will get deleted as a result of returning
- * ECORE_CALLBACK_CANCEL. */
- evh->render.idle_enterer = NULL;
-
- return ECORE_CALLBACK_CANCEL;
+ E_FREE_FUNC(evh->render.post_client_idler_before_hook, e_main_hook_del);
}
static void
_e_video_hwc_render_queue(E_Video_Hwc *evh)
{
- if (evh->render.idle_enterer)
+ if (evh->render.post_client_idler_before_hook)
return;
- /* The reason that ecore_idle_enterer_*before*_add is used here is to give
- * a chance to deal with its jobs prior to the hwc output dealing with its
- * job with idle entererer as well. */
- evh->render.idle_enterer =
- ecore_idle_enterer_before_add(_e_video_hwc_idle_enterer, evh);
+ evh->render.post_client_idler_before_hook =
+ e_main_hook_add(E_MAIN_HOOK_POST_CLIENT_IDLER_BEFORE,
+ _e_video_hwc_cb_post_client_idler_before,
+ evh);
}
static void
_e_video_hwc_client_event_deinit(evh);
- E_FREE_FUNC(evh->render.idle_enterer, ecore_idle_enterer_del);
+ E_FREE_FUNC(evh->render.post_client_idler_before_hook, e_main_hook_del);
if (evh->render_fail.walking)
{