Follow-up to #2169: keep layer.deleteAllMarkers layer-only

An empty layers list cleared the composition's markers too (CodeRabbit);
the composition-marker menu uses comp.deleteAllMarkers instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Brandon Thomas
2026-10-31 10:56:36 -04:00
co-authored by Claude Opus 5.5
parent 83b4e36e9b
commit 917f312bc2
2 changed files with 2 additions and 23 deletions
+2 -10
View File
@@ -19,10 +19,9 @@ fn has_masks(s: &Session) -> std::result::Result<(), String> {
}
fn has_markers(s: &Session) -> std::result::Result<(), String> {
has_layers(s)?;
let c = s.active_comp().ok_or("no composition")?;
if s.state.selected_layers.is_empty() {
if !c.markers.is_empty() { Ok(()) } else { Err("the composition has no markers".into()) }
} else if s.state.selected_layers.iter().filter_map(|l| c.layer(*l)).any(|l| !l.markers.is_empty()) {
if s.state.selected_layers.iter().filter_map(|l| c.layer(*l)).any(|l| !l.markers.is_empty()) {
Ok(())
} else {
Err("the selected layers have no markers".into())
@@ -597,13 +596,6 @@ fn markers_lock(s: &mut Session, p: &Value) -> Result<Value> {
fn delete_all_markers(s: &mut Session, p: &Value) -> Result<Value> {
let (cid, ids) = layers_p(s, p)?;
if ids.is_empty() {
s.edit("Delete All Markers", None, |proj, _| {
proj.comp_mut(cid).ok_or(EngineError::NoComp)?.markers.clear();
Ok(())
})?;
return Ok(Value::Null);
}
s.edit("Delete All Markers", None, |proj, _| {
for l in proj.comp_mut(cid).ok_or(EngineError::NoComp)?.layers.iter_mut_where(|l| ids.contains(&l.id) && !l.markers_locked) {
l.markers.clear();