From d50ad4e85cc0ccbe93dcb503a3e1256c65e531a2 Mon Sep 17 00:00:00 2001 From: Victoria Brekenfeld Date: Tue, 1 Aug 2023 16:49:07 +0200 Subject: [PATCH] tiling: Don't block on dead surfaces --- src/shell/layout/tiling/blocker.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/shell/layout/tiling/blocker.rs b/src/shell/layout/tiling/blocker.rs index 0de4f9ce..badbd075 100644 --- a/src/shell/layout/tiling/blocker.rs +++ b/src/shell/layout/tiling/blocker.rs @@ -1,7 +1,7 @@ use crate::shell::element::CosmicSurface; use smithay::{ reexports::wayland_server::{backend::ClientId, Client, Resource}, - utils::Serial, + utils::{IsAlive, Serial}, wayland::{ compositor::{Blocker, BlockerState}, seat::WaylandFocus, @@ -50,11 +50,12 @@ impl TilingBlocker { || self .necessary_acks .iter() - .all(|(surf, serial)| surf.serial_acked(serial)) + .all(|(surf, serial)| !surf.alive() || surf.serial_acked(serial)) } pub fn is_signaled(&self) -> bool { self.signaled.load(Ordering::SeqCst) + || !self.necessary_acks.iter().any(|(surf, _)| surf.alive()) } #[must_use]