dotCooCoo
bbbce4318f
Add Enclosing Lasso as an optional tool
...
Squashed from #5362 onto main.
2026-11-03 23:30:06 +07:00
dotCooCoo
63ac1395fd
Type: control Kashidas for selected characters
2026-11-03 23:29:52 +07:00
Dylan M. Taylor
5f31ea5c9d
fix(testkit): temp dir must belong to this user
2026-11-03 23:29:49 +07:00
Dylan M. Taylor
460a4f7a91
fix(ui): carry automation scope through opening, file picks and the render worker
2026-11-03 23:29:47 +07:00
Dylan M. Taylor
73f5ea573d
fix(ui): automation hand-offs refused, preview page named inside its folder, graph grid bounded
2026-11-03 23:29:45 +07:00
Dylan M. Taylor
c9d73ece85
fix(fonts): confine craft-fonts manifest paths and publish licences as text
2026-11-03 23:29:43 +07:00
Dylan M. Taylor
05bdd182b8
fix(render): charge fx symbol instances, admit CMYK decodes, checked Targa size
2026-11-03 23:29:41 +07:00
Dylan M. Taylor
670968f60a
perf(text): look only at a paragraph's own runs
2026-11-03 23:29:39 +07:00
Dylan M. Taylor
8f8d04e5b5
fix(trace): empty and mismatched rasters, swatch dedupe by set
2026-11-03 23:29:37 +07:00
Dylan M. Taylor
ca1c317644
fix(tools): clippy-friendly scanline bound
2026-11-03 23:29:35 +07:00
Dylan M. Taylor
1597bc378b
fix(tools): count hatch scanlines; compact liquify simplification
2026-11-03 23:29:35 +07:00
Dylan M. Taylor
c3f1a17ad1
test(pdf): keep the offsets for the trailer
2026-11-03 23:29:32 +07:00
Dylan M. Taylor
bcc26d28a6
fix(pdf): bound marked-content lookup, ASCII85, editing hash, image decodes and ink warnings
2026-11-03 23:29:32 +07:00
Dylan M. Taylor
cfd31b5010
CSS export: line breaks and angle brackets in names can't end a CSS string
...
Squashed from #5408 onto main.
2026-11-03 23:29:31 +07:00
Dylan M. Taylor
0086c85bc7
fix(svg): glyphs keep only typed raster data URLs and no links
2026-11-03 23:29:09 +07:00
Dylan M. Taylor
c972c15d0f
fix(svg): entity expansion estimate counts every declaration and refuses long names
2026-11-03 23:29:08 +07:00
Dylan M. Taylor
6b0a434c32
perf(svg): CSS class and imported symbol names go on from the last suffix
2026-11-03 23:29:06 +07:00
BFlat
408f38ea2a
Merge pull request #5402 from ruchirguitar/feat/type-on-path-preview
...
Fix #5360 : Type on a Path Options has a Preview checkbox
2026-11-03 23:14:26 +07:00
BFlat
78f573e979
Merge pull request #5399 from storytold/fix/sec-followup-5301
...
Copy: a PNG too large to make is not offered, and the status bar says why
2026-11-03 23:14:09 +07:00
BFlat
82db762d51
Merge pull request #5400 from storytold/fix/sec-followup-5305
...
Export for Screens: settings saved without their PDF passwords don't export unprotected
2026-11-03 23:13:51 +07:00
BFlat
1f73e07761
Merge pull request #5397 from storytold/fix/sec-followup-5288
...
DXF import: charge every dash copy and symbol name, name the block-work limit
2026-11-03 23:13:35 +07:00
BFlat
d1878189ce
Merge pull request #5396 from storytold/fix/sec-followup-5303
...
Threads: a frame left alone by a dropped repeat is flowed again
2026-11-03 23:13:19 +07:00
BFlat
5363321a5f
Merge pull request #5398 from storytold/fix/sec-followup-5293
...
Brushes: a brush name the library lacks doesn't make art draw a brushed stroke
2026-11-03 23:13:02 +07:00
bflatastic
28b87faeee
Type on a Path Options: docs say where the Preview checkbox comes from
2026-11-03 22:54:12 +07:00
bflatastic
9f6c7d621f
Copy: the too-large-for-PNG status message in every catalog
2026-11-03 22:53:39 +07:00
ruchirguitar and Claude Opus 5.5
f53ebdf7c0
Fix #5360 : Type on a Path Options has a Preview checkbox
...
With Preview on, the selected type on a path follows Effect, Flip, Align
to Path and Spacing while the dialog is open. Cancel puts it back with no
history step; OK keeps the previewed values as one undo step. Preview
starts off. The public pages list no Preview for this dialog, so this is
a VectorCraft choice, recorded as such in the parity docs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-03 22:53:39 +07:00
Dylan M. Taylor
ce5d99c363
Copy: a PNG too large to make is not offered, and the status bar says why
...
Follow-up to #5301 . flavour_types (and clipboard.flavours) still listed PNG for art too large to render at the smallest scale, and the omission was only logged. PNG eligibility is now shared, and flavours_with_warnings returns a warning the status bar shows.
2026-11-03 22:52:31 +07:00
Dylan M. Taylor
1ce015de86
Export for Screens: settings saved without their PDF passwords don't export unprotected
...
Follow-up to #5305 . Stripping passwords from remembered settings made the next export of a password-protected PDF row write an unencrypted file without a word. The stripped settings now keep a non-secret passwordRequired flag, and an export refuses them until a password is given again (or security without the flag is given).
2026-11-03 22:52:30 +07:00
Dylan M. Taylor
ac391b0f85
DXF import: charge every dash copy and symbol name, name the block-work limit
...
Follow-up to #5288 . A dashed compound path keeps its dash pattern on the compound node and on each loop, so the dash budget is charged for every copy. A symbol's name is charged against the text budget before the symbol is kept. Running out of block work now says so instead of reporting more than 2,000,000 objects.
2026-11-03 22:52:28 +07:00
Dylan M. Taylor
30ce0e3a42
Threads: a frame left alone by a dropped repeat is flowed again
...
Follow-up to #5303 . When deduplication shortens a thread ([[a, b], [b, c]] -> [[a, b], [c]]) and no frame changed, the fast path dropped [c] without clearing its threaded continuation. A thread that lost a listing now counts as changed and is flowed again.
2026-11-03 22:52:27 +07:00
Dylan M. Taylor
f0f3320d39
Brushes: a brush name the library lacks doesn't make art draw a brushed stroke
...
Follow-up to #5293 . draws_brushed rejected masks, symbol instances and pattern paints whose art names a brush the library doesn't have, though such a stroke draws plain. It now counts only brush names that resolve.
2026-11-03 22:52:25 +07:00
BFlat
4612ffb91d
Merge pull request #5394 from storytold/fix/sec-followup-5306
...
Place: a placement read again when it completes stays within the roots it was read in
2026-11-03 22:43:41 +07:00
BFlat
f1fdeb0aee
Merge pull request #5393 from storytold/fix/sec-arclen-guarded-measures
...
Geometry: anchor positions and Simplify measure curves through the guarded arc length
2026-11-03 22:43:25 +07:00
BFlat
450a60cc74
Merge pull request #5392 from storytold/fix/sec-mcp-busy-long-id
...
MCP: busy replies don't repeat a long request id
2026-11-03 22:43:09 +07:00
BFlat
9a47e0bd9d
Merge pull request #5391 from storytold/fix/sec-recovery-images-once
...
Data Recovery: an image entry shared by several keys is written and read once
2026-11-03 22:42:54 +07:00
BFlat
33f2798b80
Merge pull request #5390 from storytold/fix/sec-ai-swatch-names-indexed
...
Illustrator import: look swatch names up in a set
2026-11-03 22:42:42 +07:00
BFlat
b0f3e60ad0
Merge pull request #5389 from storytold/fix/sec-slices-from-guides-cap
...
Slices: Create from Guides stops at one past the slice limit
2026-11-03 22:42:23 +07:00
BFlat
29764a8f26
Merge pull request #5388 from storytold/fix/sec-graph-design-delete-dedup
...
Graph designs: Delete Design handles each listed name once
2026-11-03 22:42:09 +07:00
BFlat
095aa0aef9
Merge pull request #5387 from storytold/fix/sec-wmf-full-table-hint
...
WMF import: a full object table is not rescanned for every creation
2026-11-03 22:41:55 +07:00
BFlat
a57251130a
Merge pull request #5386 from storytold/fix/sec-name-suffix-linear
...
Brush and library names number repeats without rescanning
2026-11-03 22:41:39 +07:00
BFlat
912e69bf77
Merge pull request #5385 from storytold/fix/sec-gradient-pixel-stop-search
...
Gradients drawn pixel by pixel find their stops by binary search (EMF export, Affinity overlays)
2026-11-03 22:41:24 +07:00
BFlat
5ceee9142a
Merge pull request #5384 from storytold/fix/sec-preset-import-names-linear
...
PDF and print presets: imports number duplicate names in linear time
2026-11-03 22:41:08 +07:00
BFlat
5ba2443576
Merge pull request #5383 from storytold/fix/sec-file-access-unc-before-resolve
...
Automation roots: refuse network paths outside the roots before resolving them
2026-11-03 22:40:53 +07:00
BFlat
e662d6bcb4
Merge pull request #5382 from storytold/fix/sec-recolor-cluster-seeds
...
Recolor: clustering seeds each colour once
2026-11-03 22:40:36 +07:00
BFlat
229ab52c9a
Merge pull request #5381 from storytold/fix/sec-atomic-drop-inherited-acl
...
Atomic save: a replacement takes no inherited ACL the old file lacked
2026-11-03 22:40:19 +07:00
BFlat
97f0012a2a
Merge pull request #5380 from storytold/fix/sec-save-paths-exact
...
Save: the Templates folder needs write access; portal saves keep the exact file name
2026-11-03 22:40:02 +07:00
BFlat
59338194d3
Merge pull request #5379 from storytold/fix/sec-prefs-private
...
App: keep preference copies, dialog passwords and migrated folders private
2026-11-03 22:39:45 +07:00
BFlat
db5d44ef77
Merge pull request #5378 from storytold/fix/sec-app-reads-regular-files
...
App: open and copied-file paste read only regular files
2026-11-03 22:39:30 +07:00
BFlat
9140334453
Merge pull request #5377 from storytold/fix/sec-placed-art-no-stale-full-read
...
Placed documents: a refused read shows the preview, not another caller's cached full read
2026-11-03 22:39:15 +07:00
BFlat
e236539de3
Merge pull request #5376 from storytold/fix/sec-link-watch-opener-roots
...
Links: the link watch and Link Info read within the asking caller's roots
2026-11-03 22:39:00 +07:00