From acf206ef19911d938013f178a6b6dad292c98121 Mon Sep 17 00:00:00 2001 From: iris <2+iris@noreply.localhost> Date: Sat, 12 Sep 2026 22:11:38 -0400 Subject: [PATCH] iris: retain next-frame staging allocation --- core/src/ui/render_state.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/core/src/ui/render_state.rs b/core/src/ui/render_state.rs index 822cee8..662a626 100644 --- a/core/src/ui/render_state.rs +++ b/core/src/ui/render_state.rs @@ -285,12 +285,14 @@ impl UiRenderState { self.apply_free(); #[cfg(debug_assertions)] debug_assert!(self.primitive_counts_agree(), "{}", self.orphan_report(rsc),); - let next: Vec<_> = std::mem::take(&mut self.next_frame) - .into_iter() - .filter(|id| self.active.contains_key(id)) - .collect(); - let requested = !next.is_empty(); - rsc.widgets_mut().needs_redraw.extend(next); + let active = &self.active; + let mut requested = false; + for id in self.next_frame.drain() { + if active.contains_key(&id) { + rsc.widgets_mut().needs_redraw.insert(id); + requested = true; + } + } requested }