block rendering while screensaver is active

This commit is contained in:
Mike Blumenkrantz 2014-01-05 17:37:57 -05:00
parent 9c5509b236
commit 2ee8262ea5
1 changed files with 6 additions and 0 deletions

View File

@ -809,6 +809,9 @@ _e_comp_screensaver_on(void *data EINA_UNUSED, int type EINA_UNUSED, void *event
{
if (c->saver) continue;
c->saver = EINA_TRUE;
if (c->render_animator)
ecore_animator_freeze(c->render_animator);
E_FREE_FUNC(c->update_job, ecore_job_del);
EINA_LIST_FOREACH(c->zones, ll, zone)
{
e_comp_override_add(c);
@ -833,6 +836,7 @@ _e_comp_screensaver_off(void *data EINA_UNUSED, int type EINA_UNUSED, void *even
{
if (!c->saver) continue;
c->saver = EINA_FALSE;
e_comp_render_queue(c);
EINA_LIST_FOREACH(c->zones, ll, zone)
{
edje_object_signal_emit(zone->base, "e,state,screensaver,off", "e");
@ -1359,6 +1363,8 @@ e_comp_render_queue(E_Comp *c)
E_OBJECT_TYPE_CHECK(c, E_COMP_TYPE);
if (!c) return;
if (c->saver) return;
if (conf->lock_fps)
{
ecore_animator_thaw(c->render_animator);