diff options
Diffstat (limited to 'src/handlers')
| -rw-r--r-- | src/handlers/xdg_shell.rs | 16 |
1 files changed, 16 insertions, 0 deletions
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); |
