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() {