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@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/wayland-devel _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel