app/menu: add done action when editing the menu

This commit is contained in:
darkfi
2026-02-17 12:32:04 +01:00
parent 6504267493
commit d55f72181a
2 changed files with 13 additions and 3 deletions

View File

@@ -344,12 +344,13 @@ pub async fn make(app: &App, content: SceneNodePtr, i18n_fish: &I18nBabelFish) {
let (edit_slot, edit_recvr) = Slot::new("edit_activated");
node.register("edit_active", edit_slot).unwrap();
let renderer = app.renderer.clone();
let editlayer_is_visible2 = editlayer_is_visible.clone();
let edit_listen = app.ex.spawn(async move {
while let Ok(_) = edit_recvr.recv().await {
debug!(target: "app::menu", "menu edit active");
let atom = &mut renderer.make_guard(gfxtag!("edit_active"));
version_block_is_visible.set(atom, false);
editlayer_is_visible.set(atom, true);
editlayer_is_visible2.set(atom, true);
}
});
app.tasks.lock().unwrap().push(edit_listen);
@@ -370,9 +371,13 @@ pub async fn make(app: &App, content: SceneNodePtr, i18n_fish: &I18nBabelFish) {
let (slot, recvr) = Slot::new("cancel_clicked");
node.register("click", slot).unwrap();
let menu_node2 = menu_node.clone();
let renderer = app.renderer.clone();
let editlayer_is_visible2 = editlayer_is_visible.clone();
let listen_click = app.ex.spawn(async move {
while let Ok(_) = recvr.recv().await {
menu_node2.call_method("cancel_edit", vec![]).await.unwrap();
let atom = &mut renderer.make_guard(gfxtag!("cancel_clicked"));
editlayer_is_visible2.set(atom, false);
}
});
app.tasks.lock().unwrap().push(listen_click);
@@ -393,9 +398,13 @@ pub async fn make(app: &App, content: SceneNodePtr, i18n_fish: &I18nBabelFish) {
let (slot, recvr) = Slot::new("done_clicked");
node.register("click", slot).unwrap();
let menu_node2 = menu_node.clone();
let renderer = app.renderer.clone();
let editlayer_is_visible2 = editlayer_is_visible.clone();
let listen_click = app.ex.spawn(async move {
while let Ok(_) = recvr.recv().await {
menu_node2.call_method("done_edit", vec![]).await.unwrap();
let atom = &mut renderer.make_guard(gfxtag!("done_clicked"));
editlayer_is_visible2.set(atom, false);
}
});
app.tasks.lock().unwrap().push(listen_click);

View File

@@ -649,8 +649,9 @@ impl Menu {
return true
};
// TODO: Implement done logic - accept edit mode changes
d!("done: stub - will accept edit mode changes");
self_.is_edit_mode.store(false, Ordering::Release);
let atom = &mut self_.renderer.make_guard(gfxtag!("Menu::done_edit"));
self_.redraw(atom);
true
}