Commit Graph
3417 Commits
Author SHA1 Message Date
BFlat b2b82ddbd6 Merge pull request #7464 from dotCooCoo/fix/followup-7305
Path: path.setHandle to the handle's own point leaves a smooth anchor unchanged
2026-11-14 21:52:26 +07:00
BFlat c248d097ac Merge pull request #7545 from dotCooCoo/fix/remove-breaks-named-locked-type
Artwork Cleanup: text tools act on the locked or hidden type that ids names
2026-11-14 21:52:18 +07:00
BFlat 09f882b9d2 Merge pull request #7534 from dotCooCoo/fix/tiled-documents-own-profiles
Color management: documents behind the front one draw through their own profiles
2026-11-14 21:51:30 +07:00
BFlat ca546d0831 Merge pull request #7473 from dotCooCoo/fix/map-links-stop-plates
Swatches: a gradient stop unlinked from its spot swatch also drops its plates
2026-11-14 21:50:25 +07:00
BFlat 4c9d678863 Merge pull request #7591 from dotCooCoo/fix/swatch-edit-gradient-aspect
Swatches: a replacement gradient or pattern is stored the way a new swatch stores it
2026-11-14 21:50:09 +07:00
BFlat 60be06f7eb Merge pull request #7526 from dotCooCoo/perf/flatten-sweep-staggered-boxes
Flatten: boxes staggered right and down meet only the box before in the grouping sweep
2026-11-14 21:49:27 +07:00
BFlat 98324db329 Merge pull request #7460 from dotCooCoo/fix/plugin-store-folder-lock
Plug-ins: windows and processes take turns on the Plug-ins folder
2026-11-14 21:49:19 +07:00
BFlat 3c15649730 Merge pull request #7427 from dotCooCoo/fix/live-paint-expand-drawn-stroke
Live Paint: Expand keeps the faces and edges that draw
2026-11-14 20:37:59 +07:00
BFlat 9f55dbdd46 Merge pull request #7327 from dotCooCoo/fix/graph-label-paint-recolor
Graphs: recolor, stroke and gradient edits on labels are kept for their kind
2026-11-14 20:37:50 +07:00
BFlat ca0050be1b Merge pull request #7578 from dotCooCoo/fix/gradient-spot-colorants-drawn-stops
PDF and EPS export: gradients name only the spot inks of stops that color something
2026-11-14 20:37:42 +07:00
BFlat 9800d48e58 Merge pull request #7571 from dotCooCoo/fix/cmyk-tiff-alpha-16-bit
TIFF: a 16-bit CMYK or gray TIFF with alpha converts at 16 bits
2026-11-14 20:37:26 +07:00
BFlat c8230b469a Merge pull request #7422 from dotCooCoo/fix/dcs-placement-clip-keeps-file-clip
Place: Placement Options clip a DCS image inside its file's clipping path
2026-11-14 20:37:10 +07:00
BFlat f793044f83 Merge pull request #7587 from dotCooCoo/fix/open-dimension-labels-own-fonts
Dimensions: an opened file redraws its labels in its own composite fonts
2026-11-14 20:36:46 +07:00
BFlat f8faab6597 Merge pull request #7429 from dotCooCoo/fix/live-shape-replay-negative-radius
Live Shapes: saved object.setLiveShape steps with a negative radius or out-of-range sides replay again
2026-11-14 20:36:38 +07:00
BFlat 8deaeda1f5 Merge pull request #7516 from ruchirguitar/feat/symbol-weather-icons
Symbols: built-in Weather Icons symbol library
2026-11-14 20:34:29 +07:00
dotCooCoo 0296e9e12f Merge main into perf/flatten-sweep-staggered-boxes 2026-11-14 05:01:31 -08:00
dotCooCoo 0843e1e331 Merge main into fix/tiled-documents-own-profiles 2026-11-14 04:58:21 -08:00
dotCooCoo 0c1fb89757 Merge main into fix/map-links-stop-plates 2026-11-14 04:57:21 -08:00
dotCooCoo d7d22a8d7f Merge main into fix/followup-7305 2026-11-14 04:55:55 -08:00
dotCooCoo baf9905ba0 Merge main into fix/plugin-store-folder-lock 2026-11-14 04:50:30 -08:00
dotCooCoo 9fb76c5c7a Merge main into fix/remove-breaks-named-locked-type 2026-11-14 04:50:25 -08:00
dotCooCoo be9be8c1bd Swatches: a replacement gradient or pattern is stored as a new swatch stores it
swatch.edit stored a replacement gradient without its placement, so a
radial gradient with an aspect, Alt-dropped on a gradient swatch or
given as `paint`, lost that aspect, while swatch.new keeps it and
applies the swatch with it. A gradient given an aspect without `start`
and `end` lost the aspect in both commands. A replacement pattern kept
the tile transform of the swatch it came from, while swatch.new stores
a pattern untransformed, and `paint: {pattern: name}`, which an Alt-drop
of a pattern fill sends, was refused.

swatch.edit and swatch.new now store a gradient or pattern through one
helper: a gradient keeps its aspect, with or without a vector, and holds
no swatch link, and a pattern is untransformed. swatch.edit takes a
pattern by name, as swatch.new does.
2026-11-14 04:45:04 -08:00
BFlat a47d7eec91 Merge pull request #7478 from dotCooCoo/fix/export-selection-pdf-options
Export Selection: the picked format's options dialog follows the save panel
2026-11-14 19:38:30 +07:00
BFlat 95c9f347d6 Merge pull request #7507 from dotCooCoo/feat/cjk-tsume
Type: Tsume narrows the space around each character's ink
2026-11-14 19:38:02 +07:00
BFlat da9d9f8cf4 Merge pull request #7498 from dotCooCoo/fix/graph-design-art-style-redefine
Graphs: graphic styles leave a design's art in a series unlinked
2026-11-14 19:37:45 +07:00
dotCooCoo bfa0c8e15e Dimensions: an opened file redraws its labels in its own composite fonts
When a document opens or is reverted with dimensions whose art is not in
its color mode, the dimensions are drawn again before the document's
composite fonts are registered. A label whose font names a composite font
that another open document defines differently was measured in that other
definition, so it was centered off its anchor. The redraw now measures the
labels in the document's own composite fonts, in front and in the back.
2026-11-14 04:31:29 -08:00
dotCooCoo efb31aa51a PDF and EPS export: gradients name only the spot inks of stops that color something
A gradient's Separation or DeviceN space, and EPS's %%DocumentCustomColors,
named the spot ink of every linked stop. A stop out of order whose
neighboring stretches have no width, a stop at a tint of 0 without process
plates, and in PDF a stop whose stretches are fully transparent print no
ink, but their spot inks were still declared, so separations got an empty
plate.

- vectorcraft-color: Gradient::drawn_stops (the rule Document Info uses,
  moved here) and Gradient::reached_stops (every stop taken as opaque).
- PDF: Separation and DeviceN shadings, the Perceptual spot shadings and
  the spot-image warning name only inks of drawn stops at a tint above 0
  or with process plates; other stops are written with no ink, so their
  process inks and RGB or Lab colors no longer shape the space either.
- EPS: the same with reached stops, since EPS writes stops opaque; a
  transparent spot stop keeps its ink.

Output is unchanged when every stop colors part of the gradient and every
spot stop has a tint above 0 or process plates.
2026-11-14 04:11:40 -08:00
dotCooCoo fe82f68d6f TIFF: a 16-bit CMYK or gray TIFF with alpha converts at 16 bits
Place, Open and relink read a CMYK or grayscale TIFF with an alpha
channel through extra_samples_tiff_rgba, which cut every 16-bit sample
to its high byte before converting it. A faint ink or a low alpha was
lost: cyan 129 at full alpha showed as white, and an alpha of 129
became fully transparent.

The samples are now normalized at the depth the file stores them, and
only the resulting color and alpha are rounded to 8 bits (a 16-bit
alpha to the nearest 8-bit value). Associated alpha is divided out at
16 bits. A pixel whose associated alpha is zero now has no color,
instead of keeping its stored color. TIFF 6.0's Associated Alpha
Handling section states this arithmetic and the zero-alpha rule for
RGB data; applying them to CMYK and gray samples is VectorCraft's own
rule.
2026-11-14 03:44:41 -08:00
dotCooCoo bbf3e5ca7e Merge main into fix/plugin-store-folder-lock 2026-11-14 03:22:06 -08:00
dotCooCoo b1d364033e Artwork Cleanup: Combine and Join Point Text keep hidden and locked pieces apart
With ids, Combine Point Text and Join Point Text take locked and hidden
type. They kept the first piece's object and removed the others, so
naming a visible piece and a hidden one beside it hid the visible text
or showed the hidden text, and the same held for locked pieces and for
pieces in a locked or hidden group or layer.

A piece now joins only pieces that are as visible and as locked as it
is, counting their groups and layers. The selection route takes only
editable type, so it behaves as before.
2026-11-14 02:45:50 -08:00
dotCooCoo 2249b71e03 Merge main into fix/followup-7305 2026-11-14 02:38:29 -08:00
dotCooCoo cd86168e34 Color management: documents behind the front one draw through their own profiles
With Window › Arrange › Tile or floating document windows, every document
other than the front one was drawn through the profiles the front document
is assigned, since the active color settings are process-wide.

- cms::with_active puts other settings in place of the active ones on one
  thread, fast paths included, and puts them back after (also on a panic).
  cms::for_document gives the context a document's assigned profiles make,
  the same one each time for the same profiles and working settings.
- Each pane renders its document's art through colormgmt::doc_cms, on the
  render worker and on the UI thread alike, and draws its paper, artboard
  colors and transparency grid through the same settings.
- Loading or removing a profile redraws the documents assigned it, the
  ones behind the front one included.
- The ink and separation tables keep the tables of up to four color
  settings, so documents with different CMYK profiles side by side do not
  rebuild them on each redraw.

Placed documents inside a document behind the front one still draw through
the front document's profiles.
2026-11-14 02:24:51 -08:00
dotCooCoo bf3a23d031 Merge main into fix/graph-label-paint-recolor 2026-11-14 02:19:54 -08:00
ruchirguitar 831c477ad6 Symbols: built-in Weather Icons symbol library 2026-11-14 15:43:16 +05:30
dotCooCoo 0846f1eaf7 Merge main into fix/live-shape-replay-negative-radius 2026-11-14 02:12:21 -08:00
dotCooCoo 1bf5accc0d Merge main into fix/remove-breaks-named-locked-type 2026-11-14 02:11:05 -08:00
dotCooCoo 997aaa61b9 Merge main into fix/live-paint-expand-drawn-stroke 2026-11-14 02:08:40 -08:00
dotCooCoo a041fe04f0 Merge main into fix/dcs-placement-clip-keeps-file-clip 2026-11-14 02:08:11 -08:00
dotCooCoo d9f80a15fd Merge main into fix/map-links-stop-plates 2026-11-14 01:57:06 -08:00
dotCooCoo fb13d2045d Merge main into feat/cjk-tsume 2026-11-14 01:56:33 -08:00
BFlat edb228ac33 Merge pull request #7402 from dotCooCoo/fix/more-int-param-wrong-type
MCP: path, type, panel, library, style and ruler indices refuse a wrong-type value
2026-11-14 16:54:34 +07:00
BFlat 3c7d72f8bc Merge pull request #7333 from dotCooCoo/fix/graph-series-gradient-per-mark
Graphs: a kept gradient takes the same place on every mark of its series
2026-11-14 16:54:26 +07:00
dotCooCoo 15d6e107b6 Merge main into fix/remove-breaks-named-locked-type 2026-11-14 01:54:04 -08:00
BFlat 4c86cb97d3 Merge pull request #7489 from dotCooCoo/fix/instance-row-raster-effects
Effects: raster effects on a symbol instance's fill or stroke are drawn
2026-11-14 16:52:35 +07:00
BFlat 92b89f88a8 Merge pull request #7386 from dotCooCoo/fix/mcp-docs-stack-file
Docs: script stack frames and $.fileName name the file of the code
2026-11-14 16:51:41 +07:00
BFlat ddfa381c91 Merge pull request #7273 from dotCooCoo/fix/knockout-groups-flat-masks
PDF/SVG export: knockout groups nest no deeper with more elements
2026-11-14 16:51:33 +07:00
BFlat 895307e58b Merge pull request #7487 from dotCooCoo/fix/paste-graph-label-styles
Paste: graphs bring and follow the styles and swatches their labels keep
2026-11-14 16:51:25 +07:00
dotCooCoo 8969633c71 Flatten: boxes staggered right and down meet only the box before in the grouping sweep
When an arriving box that joins everything it overlaps covers an open
box to the right and below, and starts lower than it, the open box now
keeps only its part above the arriving box's top in the sweep's tree.
Any later box that would have met the removed part meets the arriving
box instead, which is open at least as long and in the same set, so
the groups stay the same. A box held by an open box is not opened and
cuts nothing short.

512 boxes, each 1 pt right of and below the one before, now meet 511
open boxes in the sweep instead of 130,816, with and without
transparency. Staggering right and up in sweep order still meets every
earlier open box.

The every-pair test oracle skips boxes that aren't finite, as the
sweep does.
2026-11-14 01:51:12 -08:00
BFlat 1c324e47a1 Merge pull request #7312 from dotCooCoo/fix/polygon-sides-refused
Shapes: addon.shapes commands refuse values outside their ranges
2026-11-14 16:51:03 +07:00
dotCooCoo e76982bfad Artwork Cleanup: named type on a locked artboard stays out of the text tools
Add a test that Remove Breaks leaves type on a locked artboard as it is
when ids names it, with no undo step. Rewrap the Text tools paragraph
in docs/mcp.md and name the tests in docs/target-app-parity.md.
2026-11-13 23:08:11 -08:00