diff --git a/crates/egui/src/containers/menu.rs b/crates/egui/src/containers/menu.rs index 756d68dd3..f2aaee046 100644 --- a/crates/egui/src/containers/menu.rs +++ b/crates/egui/src/containers/menu.rs @@ -161,13 +161,14 @@ impl MenuState { if state.last_visible_pass + 1 < pass_nr { state.open_item = None; } - if let Some(item) = state.open_item - && data + if let Some(item) = state.open_item { + if data .get_temp(item.with(Self::ID)) .is_none_or(|item: Self| item.last_visible_pass + 1 < pass_nr) - { - // If the open item wasn't shown for at least a frame, reset the open item - state.open_item = None; + { + // If the open item wasn't shown for at least a frame, reset the open item + state.open_item = None; + } } let r = f(&mut state); data.insert_temp(state_id, state); diff --git a/crates/egui/src/memory/mod.rs b/crates/egui/src/memory/mod.rs index d215a3bec..6192f3e72 100644 --- a/crates/egui/src/memory/mod.rs +++ b/crates/egui/src/memory/mod.rs @@ -1272,7 +1272,8 @@ impl Areas { pub fn top_layer_id(&self, order: Order) -> Option { self.order .iter() - .rfind(|layer| layer.order == order && !self.is_sublayer(layer)) + .filter(|layer| layer.order == order && !self.is_sublayer(layer)) + .next_back() .copied() } diff --git a/crates/epaint/src/shapes/shape.rs b/crates/epaint/src/shapes/shape.rs index fa8a3e75c..8ee852c61 100644 --- a/crates/epaint/src/shapes/shape.rs +++ b/crates/epaint/src/shapes/shape.rs @@ -30,7 +30,7 @@ pub enum Shape { /// Recursively nest more shapes - sometimes a convenience to be able to do. /// For performance reasons it is better to avoid it. - Vec(Vec), + Vec(Vec), /// Circle with optional outline and fill. Circle(CircleShape),