diff --git a/embassy/demos/common/src/menu.rs b/embassy/demos/common/src/menu.rs index 31322fe7138953b5eefffb1b2188294eaad14343..633f41180cfc764755807676649fc0f8d892fca5 100644 --- a/embassy/demos/common/src/menu.rs +++ b/embassy/demos/common/src/menu.rs @@ -403,6 +403,9 @@ where } } } else if cmd == "exit" && self.depth != 0 { + if let Some(cb_fn) = self.menus[self.depth].unwrap().exit { + cb_fn(&mut self.context); + } self.menus[self.depth] = None; self.depth -= 1; } else { @@ -423,6 +426,9 @@ where ItemType::Menu(m) => { self.depth += 1; self.menus[self.depth] = Some(m); + if let Some(cb_fn) = m.entry { + cb_fn(&mut self.context); + } } ItemType::_Dummy => { unreachable!();