diff --git a/crates/gpui/src/elements/list.rs b/crates/gpui/src/elements/list.rs index 10f7ef7b79ef037248e77189ebcfe34aa53d4280..5a917f81c23530bac57f24eda8ea5cfca0a626fc 100644 --- a/crates/gpui/src/elements/list.rs +++ b/crates/gpui/src/elements/list.rs @@ -352,10 +352,11 @@ impl ListState { { let mut items = SumTree::new(); items.extend((0..element_count).map(|_| ListItem::Unrendered), &()); - let handle = cx.handle(); + let handle = cx.weak_handle(); Self(Rc::new(RefCell::new(StateInner { last_layout_width: None, render_item: Box::new(move |ix, cx| { + let handle = handle.upgrade(cx)?; Some(cx.render(&handle, |view, cx| render_item(view, ix, cx))) }), rendered_range: 0..0,