Only a painted effect's references are checked, so a refusal recorded for a painted effect stayed in plugin.info after an effect that paints nothing replaced it under the same id.
A painted live effect's pieces name swatches, so a kept evaluation could outlive a swatch that was renamed or removed and answer a click with art the document no longer draws. The kept evaluation now holds the document's swatches and color groups and is stale when they change.
A painted effect's cached result passed its swatch and pattern check and cleared the error of a failed run, so plugin.info reported none while the effect still failed on another object. A run and a reference check now record their errors separately, and each clears only its own.
tool.setOption on another tool reloaded every saved option of the active tool. During a shape drag that reload rewrote the options Escape restores, so Escape kept a side count an arrow key had changed. The active tool now reloads only the stores it shares with the tool that was set.
Kinsoku push-in room does not count a gap after inline art or inside a list marker, but the squeeze also closed those gaps. The squeeze now applies only to the gaps the room counts.
registry::remove released the plug-in set before it moved the revision, as install does not. A removal that finished just before another thread took the set could still move the revision while that thread held it, which made an_install_changes_the_revision_only_while_it_holds_the_set fail intermittently.
The wheel kept the hue of its last pick while the selected objects, the
proxy, the slot and the color were unchanged. Switching to another fill
row in the Appearance panel, another range of characters in the Type
tool, or a new gradient with the same stop color kept that hue too, so a
pick there could paint the earlier hue. The wheel now also checks the
active appearance item, the selected characters and the gradient.
A set value on the hue ring above the f32 range became infinite before it
was wrapped into 0 to 360 degrees, so the ring dropped it. The value is
now wrapped first. Catalan, now a complete catalog, gets the panel's rows.
The wheel kept the HSB picked last while the objects and the color were unchanged, even after a
change of the working RGB space or the document's profile made the same color display differently.
It now also stores the display sRGB of the color it picked, and shows the color's own HSB when that
no longer matches.
An arrow key or a screen reader's step outward at the edge of the
square returned the clamped point, which equals the current one, and the
wheel picked it again. For a CMYK fill the pick separated the color
again, so one step at 100% saturation turned C100 into C71 M16 and added
an undo step. color_field now returns no point when the clamped point is
unchanged; with no marker a key or an action still sets a color.
The saturation and brightness square, and the Color Picker's color field
it shares `widgets::color_field` with, gave screen readers its name and
both values but took none of their actions, so an increment, decrement
or set-value on it left the color as it was.
The field is now a slider over its first component (saturation on the
Color Wheel), from 0 to that component's units with a step of 1, as the
hue ring is from 0 to 360. Increment and decrement move it one unit as
→ and ← do, and set-value sets it; the second component stays where it
is. Without a marker the value reads 0 and a set value still applies, as
on the ring.
`screen_readers_read_and_move_the_ring_and_the_square` checks the
square's range, step and actions, an increment, a set value and a
decrement, and `the_color_pickers_field_takes_the_arrow_keys` checks an
increment on the Color Picker's field.
With None, a pattern or a mixed paint the hue ring and the square drew
no marker and also ignored the arrow keys and screen readers' increment,
decrement and set-value actions, so only a pointer could set a color.
They now step from the last solid color the panel shows; the marker and
the values screen readers read still need a solid color.
Window › Color Wheel opens a new panel: the Fill and Stroke proxy
beside a hue ring around a square with saturation across and
brightness up at the ring's hue. It edits what the Color panel's
sliders edit (the active proxy's color, the selected gradient stop or
freeform point) through the same paint commands, and a drag is one
undo step. Alt paints the other proxy, and Shift steps the ring by
45°. The Color panel does not change.
A pick is display sRGB and goes into the working RGB space through the
color settings. An RGB, CMYK or Lab color keeps its model, and a Gray
color or a tint of a global swatch becomes a process color in the
document's color mode. The wheel keeps the hue of the last pick while
the objects, the proxy and the color are unchanged, so a drag through
a gray and back keeps the hue.
A press gives the ring or the square the keyboard focus. The arrow
keys then step the hue by 1° or the saturation and brightness by 1%.
With Shift a press steps ten times as far, and with Cmd/Ctrl it steps
a tenth as far. Each press makes one undo step, and Escape or a click
elsewhere gives the keys back to the tools. Screen readers
read the ring as a slider from 0 to 360 with increment, decrement and
set-value actions, and the square as its name and both values. The
Color Picker's color field is the same widget, so it takes the same
keys and reports its name and values.
Color::to_hsb and Color::from_hsb now call the new rgb_to_hsb and
hsb_to_rgb, which the panel uses on display sRGB numbers.
On Linux and the BSDs, VECTORCRAFT_TITLEBAR=app now uses the app bar as the title bar with System Title Bar on. Before, System Title Bar kept the desktop's frame while the Preferences note said the variable chooses the title bar.
While the variable is set, Preferences dims System Title Bar, and the note that System Title Bar takes precedence over VectorCraft Title Bar on Every Desktop does not show. macOS and Windows do not read the variable.
When the placement moved some copies off the paper, each of those copies counted as the whole page, so the TrimBox and BleedBox became the paper. They now hold the copies that print, and the whole page only when no copy is on it.