diff --git a/src/bin/e_screensaver.c b/src/bin/e_screensaver.c index a969267e6..6a69ac137 100644 --- a/src/bin/e_screensaver.c +++ b/src/bin/e_screensaver.c @@ -436,3 +436,28 @@ e_screensaver_on_get(void) { return _e_screensaver_on; } + +EAPI void +e_screensaver_activate(void) +{ +#ifndef HAVE_WAYLAND_ONLY + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + { + ecore_x_screensaver_activate(); + } +#else +#endif +} + +EAPI void +e_screensaver_deactivate(void) +{ +#ifndef HAVE_WAYLAND_ONLY + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + { + ecore_x_screensaver_reset(); + } +#else +#endif +} + diff --git a/src/bin/e_screensaver.h b/src/bin/e_screensaver.h index 684985d8c..511610e50 100644 --- a/src/bin/e_screensaver.h +++ b/src/bin/e_screensaver.h @@ -13,6 +13,9 @@ EAPI void e_screensaver_force_update(void); EAPI int e_screensaver_timeout_get(Eina_Bool use_idle); EAPI void e_screensaver_attrs_set(int timeout, int blanking, int expose); EAPI Eina_Bool e_screensaver_on_get(void); +EAPI void e_screensaver_activate(void); +EAPI void e_screensaver_deactivate(void); + EAPI extern int E_EVENT_SCREENSAVER_ON; EAPI extern int E_EVENT_SCREENSAVER_OFF; diff --git a/src/bin/e_sys.c b/src/bin/e_sys.c index 1d06cb483..070056960 100644 --- a/src/bin/e_sys.c +++ b/src/bin/e_sys.c @@ -175,6 +175,7 @@ _e_sys_comp_resume(void) EINA_LIST_FOREACH(e_comp_list(), l, c) evas_damage_rectangle_add(c->evas, 0, 0, c->man->w, c->man->h); _e_sys_comp_emit_cb_wait(E_SYS_SUSPEND, "e,state,sys,resume", NULL, EINA_FALSE); + e_screensaver_deactivate(); } /* externally accessible functions */