Commit Graph
4688 Commits
Author SHA1 Message Date
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
bflatastic 28b87faeee Type on a Path Options: docs say where the Preview checkbox comes from 2026-11-03 22:54:12 +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
bflatastic 9f6c7d621f Copy: the too-large-for-PNG status message in every catalog 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
Dylan M. Taylor bc50fa782e Place: a placement read again when it completes stays within the roots it was read in
Follow-up to #5306. A DXF placed off the UI thread against an artboard that changed meanwhile is read again in finish(), on the UI thread, outside the automation roots captured when the read started. Pending now keeps that scope and poll runs finish inside it.
2026-11-03 22:17:45 +07:00
Dylan M. Taylor 1574dfe729 fix: anchor positions and Simplify measure curves through the guarded arc length 2026-11-03 22:17:45 +07:00
Dylan M. Taylor 1806da580c fix(mcp): busy replies don't repeat a long request id 2026-11-03 22:17:45 +07:00
Dylan M. Taylor 61d9a1c3e4 fix(engine): recovery writes and reads an image entry shared by several keys once 2026-11-03 22:17:45 +07:00
Dylan M. Taylor 24e63b8b4f fix(eps): Illustrator import looks swatch names up in a set 2026-11-03 22:17:45 +07:00
Dylan M. Taylor 43e391918f fix(engine): Create from Guides stops at one past the slice limit 2026-11-03 22:17:45 +07:00
Dylan M. Taylor dabb9ae380 fix(engine): Delete Design handles each listed name once 2026-11-03 22:17:45 +07:00
Dylan M. Taylor f854b7a2cf fix(metafile): a full WMF object table is not rescanned for every creation 2026-11-03 22:17:45 +07:00
Dylan M. Taylor 824310e611 fix: brush and library names number repeats without rescanning 2026-11-03 22:17:45 +07:00
Dylan M. Taylor ffe1ee62ac fix: gradients drawn pixel by pixel find their stops by binary search 2026-11-03 22:17:45 +07:00
Dylan M. Taylor 891e90bfee fix(engine): preset imports number duplicate names in linear time 2026-11-03 22:17:45 +07:00
Dylan M. Taylor 706c8f850e fix(engine): refuse network paths outside the roots before resolving them 2026-11-03 22:17:45 +07:00
Dylan M. Taylor 4bca3c15f1 fix(color): recolor clustering seeds each colour once 2026-11-03 22:17:45 +07:00
Dylan M. Taylor d68652a8f2 fix(format): a replacement takes no inherited ACL the old file lacked 2026-11-03 22:17:45 +07:00
Dylan M. Taylor 9b10a40709 fix: Templates folder needs write access; portal saves keep exact file names 2026-11-03 22:17:45 +07:00
Dylan M. Taylor 1c4162b2c9 fix(doc): a refused placed-document read shows the preview, not a cached full read 2026-11-03 22:17:45 +07:00
Dylan M. Taylor 4d0ecb264c fix(engine): link watch and Link Info read within the asking caller's roots 2026-11-03 22:17:45 +07:00
Dylan M. Taylor 40b9fa4717 fix(engine): recovery reads only plain files in its own areas 2026-11-03 22:17:45 +07:00
bflatastic 9d3c45a7b5 .ai import: the nested-arrays refusal uses the translated nesting message 2026-11-03 22:17:45 +07:00
Dylan M. Taylor e3ef19142f fix(eps): refuse Illustrator arrays nested past the depth limit 2026-11-03 22:16:56 +07:00
Dylan M. Taylor 4aea3cc95c fix(effects): a dash pattern whose period overflows draws solid 2026-11-03 22:16:55 +07:00
NetterSilverandClaude Opus 5.5 2264edd0c9 Lasso picks gradient mesh points instead of dropping the mesh
Fixes #5351

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 22:16:53 +07:00
dotCooCoo 2b63bf1b67 Type: keep composition spacing along the line when characters rotate 2026-11-03 21:38:02 +07:00
bflatastic 96330fb54e SVG import: a style sheet too large to match opens with a warning; fuzz reaches the pass 2026-11-03 21:12:41 +07:00
dotCooCoo b751dce8e3 SVG import preserves selector matches while retaining metadata 2026-11-03 21:09:57 +07:00
dotCooCoo 0f5e4c261a Transform previews typed values in its effect dialog 2026-11-03 21:09:55 +07:00
bflatastic 14b0667e95 Actions: docs describe function keys as they now work (no Replace, keys kept) 2026-11-03 20:27:30 +07:00
dotCooCoo 40ed074cae Actions: New Action asks for the action's name, set, function key and color
Squashed from #5270 onto main.
2026-11-03 20:27:02 +07:00
dotCooCoo 4db6e7b448 Paint: use the document color model for new gradient defaults 2026-11-03 20:18:34 +07:00
bflatastic bc70180047 Text Tweaker: an id that isn't type is refused as ids of it is 2026-11-03 20:07:58 +07:00
ruchirguitarandClaude Opus 5.5 8850b923ce Fix #4924: Text Tweaker ramps or randomises one character attribute letter by letter
A built-in Type Tools add-on (Object › Plug-ins › Type Tools › Text Tweaker…,
`addon.type.textTweaker`): size, baseline shift, rotation, horizontal or vertical
scale, tracking, leading or stroke weight go from a start value to an end value
along a straight ramp, an ease, a bow, a spike or at random with a seed, set as
the Character panel sets them, while the text stays live. One undo step, a
dialog with Preview, catalog rows in all 26 languages, docs/mcp.md and the
parity docs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 20:07:58 +07:00
Brandon Thomas 78a5b8b642 Merge pull request #5353 from dotCooCoo/fix/font-wheel-system-font-tests
Tests: isolate font wheel picking from missing-glyph protection
2026-11-03 08:05:38 -05:00
ruchirguitarandClaude Opus 5.5 d7aa1c561f Fix #5236: Edit Original is one checkbox, Use System Defaults for Edit Original
Per review on #5327: Preferences › File Handling › Edit Original With (an app
path and Choose…) becomes the checkbox Use System Defaults for Edit Original,
on by default. Off, Edit Original opens a raster image in the app that made
it, PhotoCraft, looked for only where it installs; any other file, or no
PhotoCraft, goes to the system's default app. The preference is a boolean, so
prefs.set over control or MCP can no longer name an executable. The label has
a row in all 26 catalogs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 19:57:04 +07:00
ruchirguitarandClaude Opus 5.5 7c5670b797 Fix #5236: report a failed open -a, and keep Other Application while its path is cleared
macOS: wait for `open -a` (it returns once Launch Services has the
request) and report its error, such as a folder named .app that isn't a
bundle; other platforms still start the editor without waiting. A saved
or typed path also sets the dialog's Other Application choice, so
clearing it to type another keeps the field.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 19:57:04 +07:00
ruchirguitarandClaude Opus 5.5 695cc04e06 Fix #5236: Edit Original With keeps its Other choice in the dialog and paths with spaces
The Other Application choice (before a path is typed) is a `__` field of
the Preferences dialog instead of egui memory, so a dialog opened again or
reset starts at System Default. The path field shows the stored value
untrimmed, so spaces can be typed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 19:57:04 +07:00
ruchirguitarandClaude Opus 5.5 d11764c117 Fix #5236: Edit Original opens linked files in a chosen app
Preferences › File Handling › Edit Original With picks the app Links
panel › Edit Original opens a linked file in: System Default (as before),
PhotoCraft (found in /Applications or ~/Applications on macOS, on the
PATH elsewhere) or Other Application, with a path field and Choose….

The desktop host's new `open_file_with` service starts only an
application (an .app bundle on macOS, an .exe on Windows, an executable
file elsewhere), with the path as its only argument and never through a
shell. Edit Original still refuses control requests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 19:57:04 +07:00