M3.9: swatches in colour groups are first-class — Document Color Mode converts them, they can be spot colours with their own plate and PDF Separation, and Document Info counts them

Document::swatches_iter/_mut, swatch_mut, swatch_group_of, remove_swatch and a copy-on-write
walk over linked solid paints (map_solid_paints) cover every colour group.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
bflatastic
2026-10-04 12:15:10 +07:00
co-authored by Claude Opus 5.5
parent fb8c41d8e3
commit 00a0874d4d
9 changed files with 366 additions and 13 deletions
+1 -1
View File
@@ -469,7 +469,7 @@ fn color_mode(s: &mut Session, p: &Value) -> Result<Value> {
for l in &mut d.layers {
map_node_colors(Arc::make_mut(l), &f, true, true);
}
for sw in &mut d.swatches {
for sw in d.swatches_iter_mut() {
if let vectorcraft_color::Paint::Solid { color, .. } = &mut sw.paint {
*color = f(*color);
}