Fix List widget not updating children because iterator not consumed

This commit is contained in:
Jeremy Soller 2026-06-10 11:47:42 -06:00
parent c3c8fcf52c
commit 62b90179a2

View file

@ -363,24 +363,25 @@ where
let state = tree.state.downcast_mut::<State>();
let offset = layout.position() - Point::ORIGIN;
self.visible_elements
for (element, (index, layout, tree)) in self
.visible_elements
.iter_mut()
.zip(&mut state.visible_layouts)
.map(|(element, (index, layout, tree))| {
element.as_widget_mut().update(
tree,
event,
Layout::with_offset(
offset + Vector::new(0.0, self.spacing * *index as f32),
layout,
),
cursor,
renderer,
clipboard,
shell,
viewport,
)
});
{
element.as_widget_mut().update(
tree,
event,
Layout::with_offset(
offset + Vector::new(0.0, self.spacing * *index as f32),
layout,
),
cursor,
renderer,
clipboard,
shell,
viewport,
);
}
if let Event::Window(window::Event::RedrawRequested(_)) = event {
match &mut state.task {