diff --git a/compositor/shell.c b/compositor/shell.c index 2a6d5874..ec7df877 100644 --- a/compositor/shell.c +++ b/compositor/shell.c @@ -859,6 +859,9 @@ lock(struct wlsc_shell *base) wl_list_for_each(shsurf, &shell->screensaver.surfaces, link) show_screensaver(shell, shsurf); + if (!wl_list_empty(&shell->screensaver.surfaces)) + wlsc_compositor_wake(shell->compositor); + /* reset pointer foci */ wlsc_compositor_repick(shell->compositor); @@ -968,8 +971,10 @@ map(struct wlsc_shell *base, break; case SHELL_SURFACE_SCREENSAVER: /* If locked, show it. */ - if (shell->locked) + if (shell->locked) { show_screensaver(shell, shsurf); + wlsc_compositor_wake(compositor); + } do_configure = 0; break; default: