tiling: Don't block on dead surfaces
This commit is contained in:
parent
3df9f4b6a4
commit
d50ad4e85c
1 changed files with 3 additions and 2 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
use crate::shell::element::CosmicSurface;
|
use crate::shell::element::CosmicSurface;
|
||||||
use smithay::{
|
use smithay::{
|
||||||
reexports::wayland_server::{backend::ClientId, Client, Resource},
|
reexports::wayland_server::{backend::ClientId, Client, Resource},
|
||||||
utils::Serial,
|
utils::{IsAlive, Serial},
|
||||||
wayland::{
|
wayland::{
|
||||||
compositor::{Blocker, BlockerState},
|
compositor::{Blocker, BlockerState},
|
||||||
seat::WaylandFocus,
|
seat::WaylandFocus,
|
||||||
|
|
@ -50,11 +50,12 @@ impl TilingBlocker {
|
||||||
|| self
|
|| self
|
||||||
.necessary_acks
|
.necessary_acks
|
||||||
.iter()
|
.iter()
|
||||||
.all(|(surf, serial)| surf.serial_acked(serial))
|
.all(|(surf, serial)| !surf.alive() || surf.serial_acked(serial))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_signaled(&self) -> bool {
|
pub fn is_signaled(&self) -> bool {
|
||||||
self.signaled.load(Ordering::SeqCst)
|
self.signaled.load(Ordering::SeqCst)
|
||||||
|
|| !self.necessary_acks.iter().any(|(surf, _)| surf.alive())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[must_use]
|
#[must_use]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue