diff --git a/crates/engine/src/tests_layers.rs b/crates/engine/src/tests_layers.rs
index 26ea99f4..6ad69cf3 100644
--- a/crates/engine/src/tests_layers.rs
+++ b/crates/engine/src/tests_layers.rs
@@ -187,7 +187,7 @@ fn layer_options_validate_and_template_locks_and_dims() {
}
let color = |s: &Session| match node(s, layer).kind {
NodeKind::Layer { color, .. } => color,
- _ => unreachable!(),
+ _ => panic!("not a layer"),
};
run(&mut s, "layer.setProps", json!({"id": layer.0, "color": "red"}));
assert_eq!(color(&s), LayerColor::Preset(1));
diff --git a/crates/ui-egui/src/panels/layers.rs b/crates/ui-egui/src/panels/layers.rs
index ac014d12..3e6b8ee4 100644
--- a/crates/ui-egui/src/panels/layers.rs
+++ b/crates/ui-egui/src/panels/layers.rs
@@ -748,6 +748,9 @@ fn thumb(ui: &Ui, n: &Node, r: egui::Rect) {
});
}
+/// A panel menu item: label, command, params, enabled, checked.
+type MenuItem<'a> = (&'a str, &'a str, Value, bool, bool);
+
/// The Layers panel's (≡) menu.
pub fn menu(app: &mut VectorcraftApp, ui: &mut Ui) {
let Some(st) = app.session.active() else { return };
@@ -772,7 +775,7 @@ pub fn menu(app: &mut VectorcraftApp, ui: &mut Ui) {
all_layers.push(n);
}
});
- let mut items: Vec