fix(segmented_button): crash when enumerating context menu buttons

This commit is contained in:
Michael Aaron Murphy 2026-07-13 20:06:45 +02:00 • committed by Ashley Wulber
parent c53b43d41b
commit 96a82045d7

View file

@ -970,11 +970,12 @@ where
let Some((mut bounds, i)) = self let Some((mut bounds, i)) = self
.variant_bounds(state, layout.bounds()) .variant_bounds(state, layout.bounds())
.enumerate() .filter_map(|item| match item {
.find_map(|(i, item)| match item { ItemBounds::Button(entity, bounds) => Some((bounds, entity)),
ItemBounds::Button(e, bounds) if e == entity => Some((bounds, i)),
_ => None, _ => None,
}) })
.enumerate()
.find_map(|(i, (bounds, e))| if e == entity { Some((bounds, i)) } else { None })
else { else {
return; return;
}; };
@ -2529,11 +2530,12 @@ where
let (mut bounds, i) = self let (mut bounds, i) = self
.variant_bounds(state, layout.bounds()) .variant_bounds(state, layout.bounds())
.enumerate() .filter_map(|item| match item {
.find_map(|(i, item)| match item { ItemBounds::Button(entity, bounds) => Some((bounds, entity)),
ItemBounds::Button(e, bounds) if e == entity => Some((bounds, i)),
_ => None, _ => None,
})?; })
.enumerate()
.find_map(|(i, (bounds, e))| if e == entity { Some((bounds, i)) } else { None })?;
assert!( assert!(
self.context_menu self.context_menu