shell: Set the DPMS state if the screensaver fails to launch or dies
The lock hook in desktop-shell only changes the DPMS state the second time it is called, because during the first time it launches the screensaver and wakes the compositor again when the screensaver surface is configured. However, if the screensaver fails to launch, the output is left in an enabled state, even thought there's no content being displayed on the screen. Fix this by disabling the outputs when the screensaver dies if the shell is still locked. https://bugs.freedesktop.org/show_bug.cgi?id=60084
This commit is contained in:
parent
8e7adbff68
commit
18639f8d4a
@ -2116,7 +2116,16 @@ static const struct wl_shell_interface shell_implementation = {
|
||||
static void
|
||||
handle_screensaver_sigchld(struct weston_process *proc, int status)
|
||||
{
|
||||
struct desktop_shell *shell =
|
||||
container_of(proc, struct desktop_shell, screensaver.process);
|
||||
struct weston_output *output;
|
||||
|
||||
proc->pid = 0;
|
||||
|
||||
if (shell->locked)
|
||||
wl_list_for_each(output, &shell->compositor->output_list, link)
|
||||
if (output->set_dpms)
|
||||
output->set_dpms(output, WESTON_DPMS_STANDBY);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
x
Reference in New Issue
Block a user