diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index ef3b06b3e..51c769b16 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -885,6 +885,8 @@ _e_comp_screensaver_on(void *data EINA_UNUSED, int type EINA_UNUSED, void *event if (e_comp->saver) return ECORE_CALLBACK_RENEW; e_comp_override_add(); e_comp->saver = EINA_TRUE; + // XXX: this is not quite right - need to wait for signals from theme + // before freezing render animator if (e_comp->render_animator) ecore_animator_freeze(e_comp->render_animator); EINA_LIST_FOREACH(e_comp->zones, l, zone) diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c index 41504f6e3..c3c2f425b 100644 --- a/src/bin/e_comp_canvas.c +++ b/src/bin/e_comp_canvas.c @@ -272,6 +272,8 @@ _e_comp_canvas_screensaver_active(void *d EINA_UNUSED, Evas_Object *obj EINA_UNU static Eina_Bool _e_comp_cb_timer_post_screensaver_lock(void *data EINA_UNUSED) { + // XXX: the below should instntly show desklock and have no transition + // or animation e_desklock_show_autolocked(); timer_post_screensaver_lock = NULL; return ECORE_CALLBACK_CANCEL; @@ -280,6 +282,10 @@ _e_comp_cb_timer_post_screensaver_lock(void *data EINA_UNUSED) static Eina_Bool _e_comp_cb_screensaver_on() { + // XXX: this is not quite right. this here should be called after e_comp.c + // and freinds have emitted "e,state,screensaver,on" AND gotten a signal + // reply from the theme to say it's done with this animation before + // doing the below if (e_config->desklock_autolock_screensaver) { E_FREE_FUNC(timer_post_screensaver_lock, ecore_timer_del);