shell: fix compositor wakeup while locked
Compositor is locked, woken up, unlock dialog is shown; if the
compositor does to sleep again, before being unlocked, it will never
wake up again, because unlock() becomes a no-op, yet it should wake the
compositor up.
Fix this by letting unlock() to wake up the compositor, if lock surface
is present.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
diff --git a/compositor/shell.c b/compositor/shell.c
index 822c8c9..3a71697 100644
--- a/compositor/shell.c
+++ b/compositor/shell.c
@@ -1037,7 +1037,7 @@
{
struct wl_shell *shell = container_of(base, struct wl_shell, shell);
- if (!shell->locked) {
+ if (!shell->locked || shell->lock_surface) {
wlsc_compositor_wake(shell->compositor);
return;
}