Commit Graph
9899 Commits
Author SHA1 Message Date
dotCooCoo d8dd718d90 Merge main into fix/plugin-remove-revision-under-lock
# Conflicts:
#	docs/mcp.md
2026-11-08 18:57:28 -08:00
BFlat 3b92bef27c Merge pull request #2606 from dotCooCoo/feat/jxl-import
File formats: JPEG XL (.jxl) images open and place
2026-11-09 10:50:56 +08:00
BFlat c5c1913f48 Merge pull request #6265 from dotCooCoo/feat/plugin-effect-paint
Plug-ins: live effects at API level 2 can paint the pieces they return
2026-11-09 10:50:46 +08:00
BFlat 8ace539ac8 Merge pull request #5042 from dotCooCoo/fix/issue-3526-docs
Fix #3526: the bounding box follows a resize drag
2026-11-09 10:46:34 +08:00
dotCooCoo 5f3d118e60 MCP docs: remove the duplicate open_file row
The second row left out HEIC and HEIF, which the engine reads.
2026-11-08 18:45:32 -08:00
dotCooCoo 8a774d344a Plug-ins: removing a plug-in moves the revision while it holds the set
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.
2026-11-08 18:45:31 -08:00
BFlat bf0ceb661f Merge pull request #2780 from dotCooCoo/feat/visibility-variables-drive-locked-art
Variables: a visibility variable shows and hides locked art
2026-11-09 10:25:00 +08:00
BFlat c09c597e75 Merge pull request #4536 from dotCooCoo/feat/recolor-reports-skipped-art
Recolor: report the locked and hidden art a recolor of everything left out
2026-11-09 10:12:57 +08:00
BFlat 04aedc87e5 Merge pull request #6268 from dotCooCoo/fix/freeform-mixes-in-point-model
Gradients: freeform points that share a color model mix in that model
2026-11-09 10:08:22 +08:00
dotCooCoo d56a598c88 Merge main into fix/issue-3526-docs 2026-11-08 18:05:41 -08:00
dotCooCoo 0fc62c2cf3 Merge main into feat/jxl-import 2026-11-08 18:04:51 -08:00
dotCooCoo e064698086 Merge main into feat/jxl-import 2026-11-08 18:04:45 -08:00
dotCooCoo ec3f0a2288 Merge main into feat/plugin-effect-paint 2026-11-08 17:59:42 -08:00
dotCooCoo bd5ea2a1bf Merge main into feat/plugin-effect-paint 2026-11-08 17:59:33 -08:00
BFlat f6b29a6e72 Merge pull request #5213 from dotCooCoo/fix/shape-escape-restores-options
Drawing tools: Escape on a polygon, star or rounded rectangle drag puts back the option it changed
2026-11-09 09:52:16 +08:00
BFlat 196a6e815c Merge pull request #6007 from mockydevs/fix/ai-import-brushes
.ai import: Art brushes in the older form of their objects come into the Brushes panel
2026-11-09 09:47:00 +08:00
dotCooCoo e1798597f3 Fix as_png calls after merging main 2026-11-08 17:43:33 -08:00
dotCooCoo c603030252 Merge main into feat/visibility-variables-drive-locked-art 2026-11-08 17:31:05 -08:00
dotCooCoo 3ccc919936 Merge main into feat/visibility-variables-drive-locked-art 2026-11-08 17:30:32 -08:00
BFlat 9ddcd40098 Merge pull request #6220 from dotCooCoo/fix/ai-writer-object-limit-2
.ai save: the editing copy stops at the reader's object limit
2026-11-09 09:28:24 +08:00
BFlat bd92fd78cd Merge pull request #6189 from dotCooCoo/feat/js-builtins-core
JavaScript: vectorcraft-js adds ES5 Object, Array, Math, JSON and Function.prototype.bind
2026-11-09 09:28:15 +08:00
dotCooCoo d6a91b6142 Merge main into feat/plugin-effect-paint 2026-11-08 17:26:35 -08:00
dotCooCoo bd71f24da8 Merge main into feat/recolor-reports-skipped-art 2026-11-08 17:25:13 -08:00
BFlat b652599548 Merge pull request #6264 from dotCooCoo/feat/plugin-importers
Plug-ins: importer plug-ins open file types VectorCraft does not read
2026-11-09 09:24:07 +08:00
BFlat 59e485614c Merge pull request #6267 from slafebre/fix/6252-new-art-follows-selection
Fix #6252: selecting an object gives new art its fill, stroke and weight
2026-11-09 09:23:02 +08:00
BFlat 636ffe78ce Merge pull request #5070 from dotCooCoo/feat/kinsoku-shori-type
Paragraph: Kinsoku Shori Type chooses Push In First, Push Out First or Push Out Only
2026-11-09 09:22:52 +08:00
dotCooCoo ac0bb3c4ce Gradients: freeform points that share a color model mix in that model
The canvas, the gradient chips and the SVG, PDF, EPS and EMF writers mixed
freeform points in display RGB, while Object > Expand and Create Gradient
Mesh mixed them in the model the points share. Points that are all CMYK,
Gray, Lab or RGB now mix in that model in those places too. Points in
different models mix as before: in display RGB, and on ink planes as the
inks of each point.

This changes how existing art looks:

- CMYK and Lab points. With the default Generic CMYK working space and no
  ink planes, halfway between C100 and K100 the canvas drew (17, 106, 139)
  and now draws (54, 118, 143).
- RGB points in a working RGB space other than sRGB mix in that space.
- On ink planes (a CMYK document that shows transparency), RGB and Lab
  points mix first and then separate.

Gray mixes keep their values, and CMYK and Gray points on ink planes draw
as before. RGB points in an sRGB working space draw as before except on
ink planes.

- PDF and EPS write a gradient whose points are all CMYK, or all Gray in a
  CMYK file, as a CMYK image. PDF's Output settings convert it as they
  convert any CMYK image.
- Darkening applies to the points before they mix.
- With Appearance of Black set to Rich, the canvas mixes a gradient with a
  pure CMYK black point in display RGB, and the point fades from RGB black.
2026-11-08 17:18:43 -08:00
BFlat 7361e70452 Merge pull request #4599 from dotCooCoo/fix/blend-pick-resets-on-history-step
Blend: a pending pick starts over when the document's history changes
2026-11-09 09:18:15 +08:00
dotCooCoo 28fbbfb23a Merge main into fix/issue-3526-docs 2026-11-08 17:17:29 -08:00
dotCooCoo ed3429dace Merge main into fix/shape-escape-restores-options 2026-11-08 17:13:57 -08:00
BFlat 44a37b0729 Merge pull request #6233 from dotCooCoo/fix/fitted-gradient-turns-with-transform
Effects: fitted gradients turn with the Transform effect
2026-11-09 08:58:30 +08:00
BFlat 104977f404 Merge pull request #6263 from dotCooCoo/fix/plugin-grant-module-hash
Plug-ins: a permission grant covers only the module that was approved
2026-11-09 08:58:22 +08:00
BFlat e8dbb22d4c Merge pull request #6174 from dotCooCoo/feat/3d-classic-extrude-bevel
3D (Classic): Extrude & Bevel (Classic) extrudes art with Wireframe, No Shading, Diffuse and Plastic surfaces
2026-11-09 08:53:49 +08:00
dotCooCoo aa74ee433c Merge main into feat/jxl-import 2026-11-08 16:52:56 -08:00
dotCooCoo 68cd7f63c2 Merge main into fix/ai-writer-object-limit-2 2026-11-08 16:47:31 -08:00
dotCooCoo 3ea13d88d3 Merge main into feat/kinsoku-shori-type
# Conflicts:
#	crates/engine/src/cmd/panelcmds.rs
2026-11-08 16:47:29 -08:00
Don Omondi 3a890dbdd3 Merge remote-tracking branch 'upstream/main' into fix/ai-import-brushes 2026-11-08 19:46:15 -05:00
dotCooCoo 918ef940cb Merge main into feat/plugin-importers 2026-11-08 16:45:20 -08:00
dotCooCoo 1f9319ae97 Merge main into feat/js-builtins-core 2026-11-08 16:34:50 -08:00
dotCooCoo 5faa5c4d1d JavaScript: JSON.parse releases its text before the reviver runs
The text is rooted and held only while the parse runs. A reviver can use the room the text took.
2026-11-08 16:34:49 -08:00
dotCooCoo be46e95cd9 Merge main into fix/blend-pick-resets-on-history-step 2026-11-08 16:34:32 -08:00
dotCooCoo fb4c38db5d JavaScript: JSON.parse counts its text and pending names toward the heap limit
The text a non-string argument converts to stays rooted while the parse runs, so a
collection still counts it. A property name read from the text is charged to the heap
until its property is defined. Boolean.prototype.toString and valueOf are added, so a
Boolean object writes `true` or `false`. The json2 sample no longer includes U+2028:
the polyfill escapes it and section 15.12.3 does not.
2026-11-08 16:27:59 -08:00
BFlat a5c166fbea Merge pull request #6260 from dotCooCoo/fix/composite-fonts-review
Type: type in a composite font is measured in its own document's definition
2026-11-09 08:27:10 +08:00
Sven Lafebre de6cc6a9c3 Fix #6252: selecting an object gives new art its fill, stroke and weight
With New Art Has Basic Appearance on (the default), the selection never
reached the fill and stroke proxies, so new art kept the colours set last.
A select.* command or layer.target that changes the selection now loads
the proxies and the weight from what the selection shows in them.

A paint or weight the selected objects don't share stays as it was, and
art without paint (a placed image) changes nothing. The template is left
alone, and only a changed selection loads, so a sampled paint stays.
2026-11-09 01:26:47 +01:00
dotCooCoo 501d82ece4 Merge main into feat/js-builtins-core 2026-11-08 16:25:35 -08:00
dotCooCoo 6e058f1481 Merge main into fix/plugin-grant-module-hash 2026-11-08 16:22:41 -08:00
BFlat 49c8b86461 Merge pull request #6262 from devius/ka-update
i18n(ka): update the Georgian catalog (59 strings)
2026-11-09 08:22:09 +08:00
Don Omondi 499a78b0bf Merge remote-tracking branch 'upstream/main' into fix/ai-import-brushes
# Conflicts:
#	docs/file-format-parity.md
#	docs/target-app-parity.md
2026-11-08 19:21:57 -05:00
dotCooCoo 0ce616da4b Merge main into feat/kinsoku-shori-type
# Conflicts:
#	crates/engine/src/cmd/panelcmds.rs
#	crates/text/src/layout/breaking.rs
#	crates/ui-egui/src/panels/paragraph.rs
#	docs/target-app-parity.md
2026-11-08 16:13:35 -08:00
BFlat 0c4fd6afa0 Merge pull request #6261 from dotCooCoo/fix/macos-filter-plugin-shortcut-test
Tests: the filter plug-in shortcut test accepts the macOS chord text
2026-11-09 08:08:08 +08:00