From dc51a79777f58e66bb092da7f5cfec6247098849 Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Sun, 5 Apr 2026 19:31:09 +0200 Subject: [PATCH] container: unconditionally render the mono child as the last active child --- src/tree/container.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/tree/container.rs b/src/tree/container.rs index 7f48f2b1..e1c37924 100644 --- a/src/tree/container.rs +++ b/src/tree/container.rs @@ -710,6 +710,13 @@ impl ContainerNode { } } + fn last_active(&self) -> Option { + match self.mono_child.get() { + Some(c) => Some(c.node.node_id()), + None => self.focus_history.last().map(|v| v.node.node_id()), + } + } + fn render_titles(&self) -> Rc { let on_completed = Rc::new(OnDropEvent::default()); let Some(ctx) = self.state.render_ctx.get() else { @@ -718,7 +725,7 @@ impl ContainerNode { let theme = &self.state.theme; let th = theme.title_height(); let font = theme.title_font(); - let last_active = self.focus_history.last().map(|v| v.node.node_id()); + let last_active = self.last_active(); let have_active = self.children.iter().any(|c| c.active.get()); let scales = self.state.scales.lock(); for child in self.children.iter() { @@ -819,7 +826,7 @@ impl ContainerNode { rd.border_rects.clear(); rd.underline_rects.clear(); rd.last_active_rect.take(); - let last_active = self.focus_history.last().map(|v| v.node.node_id()); + let last_active = self.last_active(); let mono = self.mono_child.is_some(); let split = self.split.get(); let have_active = self.children.iter().any(|c| c.active.get());