//RENDER_SYNC
static int _ecore_evas_render_sync = 1;
+// TIZEN_ONLY(20171130) to prevent the render freeze
+static Eina_Bool _ee_idle_enter = EINA_FALSE;
+// End of TIZEN_ONLY(20171130)
+
static void
_ecore_evas_focus_out_dispatch(Ecore_Evas *ee, Efl_Input_Device *seat)
{
{
Ecore_Evas *ee;
+ // TIZEN_ONLY(20171130) to prevent the render freeze
+ _ee_idle_enter = EINA_FALSE;
+ // End of TIZEN_ONLY(20171130)
+
EINA_INLIST_FOREACH(ecore_evases, ee)
- ee->animator_ran = EINA_FALSE;
+ {
+ // TIZEN_ONLY(20171130) to prevent the render freeze
+ if (ee->animator_ticked_in_idler)
+ {
+ continue;
+ }
+ // End of TIZEN_ONLY(20171130)
+
+ ee->animator_ran = EINA_FALSE;
+ }
return ECORE_CALLBACK_RENEW;
}
double now = ecore_loop_time_get();
#endif
+ // TIZEN_ONLY(20171130) to prevent the render freeze
+ _ee_idle_enter = EINA_TRUE;
+ // End of TIZEN_ONLY(20171130)
+
if (!ecore_evases) return ECORE_CALLBACK_RENEW;
if (_ecore_evas_fps_debug)
}
EINA_INLIST_FOREACH(ecore_evases, ee)
{
+ // TIZEN_ONLY(20171130) to prevent the render freeze
+ ee->animator_ticked_in_idler = 0;
+ // End of TIZEN_ONLY(20171130)
+
if (ee->manual_render)
{
if (ee->engine.func->fn_evas_changed)
ecore_loop_time_set(loop_time);
+ // TIZEN_ONLY(20171130) to prevent the render freeze
+ if (_ee_idle_enter)
+ ee->animator_ticked_in_idler = 1;
+ // End of TIZEN_ONLY(20171130)
+
ee->animator_ran = EINA_TRUE;
efl_event_callback_call(ee->evas, EFL_EVENT_ANIMATOR_TICK, &a);