From 1a9f976818728c2e28b2e80b216ab7bb399581c3 Mon Sep 17 00:00:00 2001 From: Victoria Brekenfeld Date: Tue, 1 Aug 2023 16:49:29 +0200 Subject: [PATCH] xdg_shell: Trigger blocker evaluation on toplevel destruction --- src/wayland/handlers/xdg_shell/mod.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/wayland/handlers/xdg_shell/mod.rs b/src/wayland/handlers/xdg_shell/mod.rs index 60b9db5c..60774d2d 100644 --- a/src/wayland/handlers/xdg_shell/mod.rs +++ b/src/wayland/handlers/xdg_shell/mod.rs @@ -24,7 +24,7 @@ use smithay::{ use std::cell::Cell; use tracing::warn; -use super::screencopy::PendingScreencopyBuffers; +use super::{compositor::client_compositor_state, screencopy::PendingScreencopyBuffers}; pub mod popup; @@ -238,6 +238,15 @@ impl XdgShellHandler for State { self.common.shell.active_space_mut(output).refresh(); } + // animations might be unblocked now + let clients = self.common.shell.update_animations(); + { + let dh = self.common.display_handle.clone(); + for client in clients.values() { + client_compositor_state(&client).blocker_cleared(self, &dh); + } + } + // screencopy let mut scheduled_sessions = self.schedule_workspace_sessions(surface.wl_surface()); for output in outputs.into_iter() {