From aac54d0ea1a5c95aba698aed583ee3fa9670f18b Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Fri, 13 Dec 2024 10:28:25 +0300 Subject: Implement floating child stacking above parents --- src/handlers/xdg_shell.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/handlers') diff --git a/src/handlers/xdg_shell.rs b/src/handlers/xdg_shell.rs index 869492a2..5cb515ce 100644 --- a/src/handlers/xdg_shell.rs +++ b/src/handlers/xdg_shell.rs @@ -647,6 +647,22 @@ impl XdgShellHandler for State { fn title_changed(&mut self, toplevel: ToplevelSurface) { self.update_window_rules(&toplevel); } + + fn parent_changed(&mut self, toplevel: ToplevelSurface) { + let Some(parent) = toplevel.parent() else { + return; + }; + + if let Some((mapped, output)) = self.niri.layout.find_window_and_output_mut(&parent) { + let output = output.cloned(); + let window = mapped.window.clone(); + if self.niri.layout.descendants_added(&window) { + if let Some(output) = output { + self.niri.queue_redraw(&output); + } + } + } + } } delegate_xdg_shell!(State); -- cgit