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:
1 parent
4fb383eaa3
commit
de6e66460d
3 files changed
+98
-15
No files matched your search
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user