From 3b0bd6507899847378a8d0e963b254eaff61ceee Mon Sep 17 00:00:00 2001 From: Schrottkatze Date: Wed, 18 Jun 2025 17:14:11 +0200 Subject: [PATCH] fix menus not closing on exit of trigger state --- src/menus/lib/plugin.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/menus/lib/plugin.rs b/src/menus/lib/plugin.rs index 022919e..5210373 100644 --- a/src/menus/lib/plugin.rs +++ b/src/menus/lib/plugin.rs @@ -5,6 +5,8 @@ use bevy::{ state::state::FreelyMutableState, }; +use crate::cleanup::despawn; + use super::{ ItemPosition, MenuItemInternal, MenuItemType, OnPressAction, menus::{Menu, Menus}, @@ -30,7 +32,8 @@ where update_ui_trigger::, handle_press_actions::.run_if(in_state(self.trigger.clone())), ), - ); + ) + .add_systems(OnExit(self.trigger.clone()), close_menu::); } } @@ -53,6 +56,15 @@ impl Menus { } } +fn close_menu( + mut c: Commands, + mut nav_state: ResMut>, + closed_when: Res>, +) { + c.run_system_cached(despawn::>); + nav_state.set(closed_when.0.clone()); +} + #[derive(Resource)] struct MenusStore(HashMap>); #[derive(Resource)]