Revoke fullscreen stacking exceptions when window parents change

Clear the old exception when a dialog is unparented or reparented, and remove child references when a parent is destroyed. Preserve floating placement while rebuilding the stacking order.

Fixes #55
This commit is contained in:
Samuel Onoja committed 2026-10-20 15:36:52 +01:00
1 parent 4fb383eaa3
commit de6e66460d
3 files changed
+98 -15

No files matched your search

+3 -6
View File
@@ -60,10 +60,7 @@ impl XdgShellHandler for Ferese {
fn parent_changed(&mut self, surface: ToplevelSurface) {
self.refresh_capture_privacy();
self.refresh_idle_inhibition();
let Some(parent) = surface.parent() else {
return;
};
let parent = self.windows.id_for_surface(&parent);
let parent = surface.parent().and_then(|parent| self.windows.id_for_surface(&parent));
let child = self
.windows
.id_for_surface(surface.wl_surface())
@@ -77,8 +74,8 @@ impl XdgShellHandler for Ferese {
})
.cloned();
if let (Some(parent), Some(child)) = (parent, child) {
self.make_window_transient(&child, parent);
if let Some(child) = child {
self.update_window_parent(&child, parent);
}
}