From a0451408aa7cdf17d9b23768ce631bc8f5c1496b Mon Sep 17 00:00:00 2001 From: Aleksander Date: Sun, 11 Jan 2026 14:59:26 +0100 Subject: [PATCH] wgui: fix possible panic --- wgui/src/components/slider.rs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/wgui/src/components/slider.rs b/wgui/src/components/slider.rs index 59003d2..8ef9f18 100644 --- a/wgui/src/components/slider.rs +++ b/wgui/src/components/slider.rs @@ -84,7 +84,6 @@ struct Data { slider_handle_rect_id: WidgetID, // Rectangle slider_text_id: Option, // Text slider_handle_id: WidgetID, - slider_handle_node_id: taffy::NodeId, } pub struct SliderValueChangedEvent { @@ -212,7 +211,14 @@ impl State { self.values.set_value(value); let changed = self.values.value != before; - let style = common.state.tree.style(data.slider_handle_node_id).unwrap(); + + let Some(slider_handle_node_id) = common.state.nodes.get(data.slider_handle_id) else { + return; + }; + + let Ok(style) = common.state.tree.style(*slider_handle_node_id) else { + return; + }; if !conf_handle_style( common.alterables, &self.values, @@ -440,10 +446,9 @@ pub fn construct(ess: &mut ConstructEssentials, params: Params) -> anyhow::Resul }; // invisible outer handle body - let (slider_handle, slider_handle_node_id) = - ess - .layout - .add_child(body_id, WidgetDiv::create(), slider_handle_style)?; + let (slider_handle, _) = ess + .layout + .add_child(body_id, WidgetDiv::create(), slider_handle_style)?; let (slider_handle_rect, _) = ess.layout.add_child( slider_handle.id, @@ -499,7 +504,6 @@ pub fn construct(ess: &mut ConstructEssentials, params: Params) -> anyhow::Resul slider_handle_rect_id: slider_handle_rect.id, body_node: slider_body_node, slider_handle_id: slider_handle.id, - slider_handle_node_id, slider_text_id: slider_text.map(|s| s.0.id), });