[PATCH weston] shell: Disarm the screensaver timeout timer on terminate_screensaver()
Kristian Høgsberg
hoegsberg at gmail.com
Thu Apr 10 10:04:21 PDT 2014
On Thu, Apr 10, 2014 at 02:49:35PM +0300, Ander Conselvan de Oliveira wrote:
> The timer was left running after the screensaver was terminated. When
> it triggered, a fade out that would in turn cause the screen to be
> locked was started. Since that could happen without the compositor
> emitting the idle signal, there would be no wake signal to make the
> shell show the lock screen, so the system was left unresponsive
> until the idle signal actually triggered.
Thanks, that makes sense. This only triggers when we actually compile
and run the GL screensaver, right?
Kristian
> https://bugs.freedesktop.org/show_bug.cgi?id=70923
> ---
> desktop-shell/shell.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
> index 466ea93..09b992c 100644
> --- a/desktop-shell/shell.c
> +++ b/desktop-shell/shell.c
> @@ -3715,6 +3715,12 @@ terminate_screensaver(struct desktop_shell *shell)
> if (shell->screensaver.process.pid == 0)
> return;
>
> + /* Disarm the screensaver timer, otherwise it may fire when the
> + * compositor is not in the idle state. In that case, the screen will
> + * be locked, but the wake_signal won't fire on user input, making the
> + * system unresponsive. */
> + wl_event_source_timer_update(shell->screensaver.timer, 0);
> +
> kill(shell->screensaver.process.pid, SIGTERM);
> }
>
> --
> 1.8.3.2
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
More information about the wayland-devel
mailing list