Paste without Formatting dropped the label formats a pasted graph keeps
but left the mark that its legend labels' fill is their own. After a later
change to a legend label (its size, for example), the next redraw read the
default black fill as the labels' own and drew them black on dark wedges
again. The mark now stays behind with the other formats.
A pie's legend label whose series name holds line breaks of its own (from
a quoted CSV cell) is now located by all of its lines, as a redraw centers
it. Before, only `|` counted as a line break, so a tall label on stacked
pies could take the contrast of the wrong ring.
Paste no longer recolors the legend labels of a pie whose wedges a merged
or changed swatch recolors. That is a separate change to Paste and goes in
its own pull request. Paste without Formatting sets the legend labels by
the wedge colors as copied.
An Abutting trace with Fills now holds a "Seam Fills" group under its
paths. For each color it has one stroke, 1.5 image pixels wide, along
the edges where a filled path of that color meets a filled path drawn
after it, in that color. A renderer that anti-aliases each path on its
own no longer shows a light hairline along those edges. The traced
paths and their shared edges do not change, and edges against the
image's border, a transparent area or a color left out get no stroke.
- vectorcraft-trace: `seam_fills` finds the segments two filled paths
share and strokes them in the lower path's color (one stroke per
gradient path). Overlapping, traces without Fills and Flat Logo get
none.
- Image Trace commands: the group comes under every path (right above
the hidden image in a live trace). Expand keeps it, Expand by color
leaves it under the color groups, and a trace whose paths have more
than half of the anchor limit gets no seam fills.
Docs: docs/mcp.md, the params text, docs/target-app-parity.md.
select.key {id, anchor} set the new key anchor before checking it, so a
point that is in the selection but not on the path cleared the key
anchor and then returned an error. The point is now checked first: an
anchor the path does not have is not a selected anchor point, and the
other conditions are checked on a copy of the selection.
Variable Options in the Variables panel only renamed a variable, and no
command changed a variable's kind. variable.rename now takes
{name, newName?, kind?} and renames the variable, changes its kind, or
both, in one undo step, with none when nothing changes. A null or empty
value, an unknown kind, a taken name and locked variables are refused.
A kind change unbinds the objects that can't hold the new kind (text
keeps type with no other text variable, image keeps image objects,
graph keeps graph roots, visibility keeps every object) and drops the
variable's values in every data set. The dialog shows the variable's
name and kind and sends both.