raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=db73bcabd92fd854908d49e54c1ff83159680687

commit db73bcabd92fd854908d49e54c1ff83159680687
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Sun Jun 28 15:29:22 2020 +0100

    e comp  x - ensure animator works before fading in backlight
---
 src/bin/e_comp_x.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index a217a5eff..6beee467a 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -5272,13 +5272,25 @@ _e_comp_x_screensaver_off()
 }
 
 static Ecore_Timer *screensaver_eval_timer = NULL;
+static Ecore_Animator *screensaver_eval_animator = NULL;
 static Eina_Bool saver_on = EINA_FALSE;
 
 static Eina_Bool
 _e_comp_x_screensaver_eval_cb(void *d EINA_UNUSED)
 {
-   e_screensaver_eval(saver_on);
+   E_FREE_FUNC(screensaver_eval_animator, ecore_animator_del);
    screensaver_eval_timer = NULL;
+   e_screensaver_eval(saver_on);
+   return EINA_FALSE;
+}
+
+static Eina_Bool
+_e_comp_x_screensaver_pre_eval_cb(void *d EINA_UNUSED)
+{
+   E_FREE_FUNC(screensaver_eval_timer, ecore_timer_del);
+   screensaver_eval_animator = NULL;
+   screensaver_eval_timer = ecore_timer_loop_add(0.3, 
_e_comp_x_screensaver_eval_cb, NULL);
+   e_screensaver_eval(saver_on);
    return EINA_FALSE;
 }
 
@@ -5290,13 +5302,15 @@ _e_comp_x_screensaver_notify_cb(void *data EINA_UNUSED, 
int type EINA_UNUSED, Ec
      {
         saver_on = EINA_TRUE;
         E_FREE_FUNC(screensaver_eval_timer, ecore_timer_del);
+        E_FREE_FUNC(screensaver_eval_animator, ecore_animator_del);
         screensaver_eval_timer = ecore_timer_loop_add(0.3, 
_e_comp_x_screensaver_eval_cb, NULL);
      }
    else if ((!ev->on) && (saver_on))
      {
         saver_on = EINA_FALSE;
         E_FREE_FUNC(screensaver_eval_timer, ecore_timer_del);
-        screensaver_eval_timer = ecore_timer_loop_add(0.3, 
_e_comp_x_screensaver_eval_cb, NULL);
+        E_FREE_FUNC(screensaver_eval_animator, ecore_animator_del);
+        screensaver_eval_animator = 
ecore_animator_add(_e_comp_x_screensaver_pre_eval_cb, NULL);
      }
    return ECORE_CALLBACK_PASS_ON;
 }

-- 


Reply via email to