Commit Graph
7854 Commits
Author SHA1 Message Date
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
ruchirguitarandClaude 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