discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a0322f4b00c80ed5995d57f11215c7f3324c6b50
commit a0322f4b00c80ed5995d57f11215c7f3324c6b50 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 b609c58..ceab4bd 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -703,14 +703,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")); @@ -1603,6 +1595,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: win"); if (!e_win_init()) return 0; TS("Compositor Init"); @@ -1637,6 +1631,7 @@ _e_main_screens_shutdown(void) e_menu_shutdown(); e_shelf_shutdown(); e_comp_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 41b10b6..5778392 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; --
