raster pushed a commit to branch master.

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

commit 69f757edad2609fdc88d22c52bdd208bb9970084
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Sun May 7 14:33:05 2017 +0900

    further fixes to screensaver/banking with window states like fullscreen
    
    this is a further fix for T5464 to actually make the intended option
    work at all. what was there was broken. now it works. init order was
    wrong - screensaver was relying on event id's from e_client socde that
    were not initted yet AND the handlers didnt account for "dont blank
    when fullscreen window is there" at all. @fix
---
 src/bin/e_main.c        | 11 +++--------
 src/bin/e_screensaver.c |  6 ++++++
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/bin/e_main.c b/src/bin/e_main.c
index e70c4e6..69de659 100644
--- a/src/bin/e_main.c
+++ b/src/bin/e_main.c
@@ -713,14 +713,6 @@ main(int argc, char **argv)
 
    if (e_config->show_splash)
      e_init_status_set(_("Setup Screensaver"));
-   TS("E_Screensaver Init");
-   if (!e_screensaver_init())
-     {
-        e_error_message_show(_("Enlightenment cannot configure the X 
screensaver.\n"));
-        _e_main_shutdown(-1);
-     }
-   TS("E_Screensaver Init Done");
-   _e_main_shutdown_push(e_screensaver_shutdown);
 
    if (e_config->show_splash)
      e_init_status_set(_("Setup Screens"));
@@ -1609,6 +1601,8 @@ _e_main_screens_init(void)
 {
    TS("\tscreens: client");
    if (!e_client_init()) return 0;
+   TS("E_Screensaver Init");
+   if (!e_screensaver_init()) return 0;
    TS("\tscreens: client volume");
    if (!e_client_volume_init()) return 0;
    TS("\tscreens: win");
@@ -1646,6 +1640,7 @@ _e_main_screens_shutdown(void)
    e_shelf_shutdown();
    e_comp_shutdown();
    e_client_volume_shutdown();
+   e_screensaver_shutdown();
    e_client_shutdown();
    e_exehist_shutdown();
    e_backlight_shutdown();
diff --git a/src/bin/e_screensaver.c b/src/bin/e_screensaver.c
index c248a49..2db7b94 100644
--- a/src/bin/e_screensaver.c
+++ b/src/bin/e_screensaver.c
@@ -75,6 +75,12 @@ e_screensaver_update(void)
    Eina_Bool changed = EINA_FALSE;
 
    timeout = e_screensaver_timeout_get(EINA_TRUE);
+   if (!((e_config->screensaver_enable) &&
+         (!e_config->mode.presentation) &&
+         (!((e_util_fullscreen_current_any()) &&
+            (e_config->no_dpms_on_fullscreen)))))
+     timeout = 0;
+
    if (_e_screensaver_timeout != timeout)
      {
         _e_screensaver_timeout = timeout;

-- 


Reply via email to