aiongg
6877d6535f
Links: resolve stored paths with craft-docpath's resolve_absolute ( #3267 )
...
* Links: use resolve_absolute for stored paths
* CI: release only with git dependencies from storytold
* Release: check git sources from the parsed Cargo.lock and cargo config
The grep let any character stand for the dot in github.com, passed a missing or stale
Cargo.lock, and missed source replacement in .cargo/config.
2026-10-23 17:51:28 -04:00
BFlat
f02eedd50d
Merge pull request #3892 from mercuryVM/fix/3724-new-window-disabled
...
Fix #3724 : Window › New Window is greyed out until it opens a window
2026-10-24 04:51:26 +07:00
BFlat
ec2d43a4d5
Merge pull request #3894 from lehni/refactor/colour-key
...
Renderer: colour caches key colours with Color::key
2026-10-24 04:51:10 +07:00
BFlat
32d81bb04e
Merge pull request #3884 from dylanmtaylor/fix/audit-pdf-limits
...
Security: PDF import, print and export bounds; PDF 1.3 encryption notes
2026-10-24 04:50:54 +07:00
BFlat
83ccffcc9e
Merge pull request #3890 from dylanmtaylor/fix/audit-engine-mcp-limits
...
Security: export names, linked-file ids, MCP prompt arguments and image encoders
2026-10-24 04:50:38 +07:00
BFlat
2084f1a6f9
Merge pull request #3889 from dylanmtaylor/fix/audit-effects-color
...
Security: Scribble rows, Outer Glow dilation and CSS export names
2026-10-24 04:50:23 +07:00
BFlat
5abf14a1c3
Merge pull request #3886 from dylanmtaylor/fix/audit-cad-limits
...
Security: DXF export bounds (layer and style names, flattening, entity count, image size) and import dash patterns
2026-10-24 04:50:07 +07:00
BFlat
cc44799d08
Merge pull request #3885 from mercuryVM/fix/3716-click-near-anchor-moves
...
Fix #3716 : a click near an anchor selects without moving the object
2026-10-24 04:49:51 +07:00
BFlat
c6acc2511d
Merge pull request #3879 from lehni/feature/art-owns-pixels
...
Type: emoji go with type that effects reshape and Expand Appearance
2026-10-24 04:49:33 +07:00
Gabriel Luís da Silva
60764fb65b
Fix #3724 : Window > New Window is greyed out until it opens a window
...
New Window was enabled in the menus and in the control channel's menu
listing, but choosing it opened nothing and answered with the internal
note "multiple windows land with M11.5". It is now disabled, as Window >
Arrange's unimplemented items already are, and a direct call fails with
a message meant for the user, translated in every catalog.
2026-10-24 04:49:07 +07:00
Jürg Lehni
181aeef44c
Renderer: colour caches key colours with Color::key
...
The freeform and dithered gradient grids and the separated inks each built the same exact colour key by hand; they now take the one Color::key gives.
2026-10-24 04:49:07 +07:00
Dylan M. Taylor
5020dc0585
PDF export: past the retry cap, one last run leaves out every image instead of failing
2026-10-24 04:49:07 +07:00
bflatastic
9c8afb09ba
Image encoders: rustfmt
2026-10-24 04:49:07 +07:00
bflatastic
028cafa52e
Scribble: the row loop's stop compares with partial_cmp (also stops on NaN; clippy)
2026-10-24 04:49:07 +07:00
bflatastic
a82bcfe7a5
DXF export: format the far-coordinate check
2026-10-24 04:49:07 +07:00
Gabriel Luís da Silva
f0ec1c8506
Fix #3716 : a click near an anchor selects without moving the object
...
A Selection tool press within reach of an anchor or the centre grabs the
object by that point, but the drag threshold was measured from that point
instead of from the press. A press 3-6 px from it was already past the
threshold, so the first pointer wobble started a move and jumped the
object by the offset. The threshold now counts from where the pointer
went down; a real drag still moves the object by the grabbed point.
2026-10-24 04:49:07 +07:00
bflatastic
2e71ab5476
PDF import and export: rustfmt
2026-10-24 04:49:07 +07:00
Dylan M. Taylor
52ceefe906
Audit: Targa and palette encoders check pixel buffer sizes
2026-10-24 04:49:07 +07:00
Dylan M. Taylor
b59235e762
Test: sliding-window maximum
2026-10-24 04:49:07 +07:00
bflatastic
62333a2128
DXF export: the far-coordinate check compares with partial_cmp (also refuses NaN; clippy)
2026-10-24 04:49:07 +07:00
Dylan M. Taylor
4b8e69981e
Audit: PDF import and export bounds
2026-10-24 04:49:07 +07:00
Dylan M. Taylor
9843d5f1ab
Audit: export names, linked-file ids and MCP prompt arguments in one pass
2026-10-24 04:49:07 +07:00
Dylan M. Taylor
e3223a419d
Audit: Scribble rows counted, Outer Glow dilation in linear time, CSS export names in a set
2026-10-24 04:49:07 +07:00
bflatastic
711b10ca59
Security: DXF export bounds (layer and style names, flattening, entity count, image size) and import dash patterns
...
Squashed from #3886 onto main.
2026-10-24 04:49:07 +07:00
bflatastic
c2ad9f8bbb
Type: emoji go with type that effects reshape and Expand Appearance
...
Squashed from #3879 onto main.
2026-10-24 04:49:06 +07:00
BFlat
94e1fa3ecc
Merge pull request #3882 from dylanmtaylor/fix/audit-geom-pathops
...
Security: geometry, path edit and tool work bounds
2026-10-24 04:48:28 +07:00
bflatastic
0ecef703ef
Security: cap the perspective grid's line-loop bounds at 121 a way
2026-10-24 04:34:18 +07:00
Dylan M. Taylor
1bb904c147
Audit: Perspective Grid lines counted not summed; Liquify subdivision stays under its anchor ceiling
2026-10-24 04:13:37 +07:00
Dylan M. Taylor
aa160b969b
Audit: path edit work bounds (redundant points in one pass, simplify and join budgets)
2026-10-24 04:13:36 +07:00
Dylan M. Taylor
f4a30c1a94
Audit: geometry length measurement refuses coordinates the integrator cannot handle
2026-10-24 04:13:36 +07:00
BFlat
b0f7c5a65a
Merge pull request #3877 from dylanmtaylor/fix/audit-svg-limits
...
Security: SVG import and export bounds (entity expansion, filter stacks, id probing, font feature tags)
2026-10-24 04:12:17 +07:00
BFlat
e749cde3f5
Merge pull request #3876 from storytold/fix/3867-preserve-editing-svg
...
SVG: a Preserve Editing SVG reopened from disk saves as the full document again (#3867 )
2026-10-24 04:12:02 +07:00
BFlat
6acc5ffb28
Merge pull request #3873 from lehni/chore/colour-glyph-tests
...
Type: tests pin colour glyphs in variable fonts, on paths and on the canvas
2026-10-24 04:11:47 +07:00
BFlat
993a277563
Merge pull request #3875 from storytold/fix/3868-screens-one-artboard
...
Export for Screens: a document row for an artboard keeps only that artboard's art (#3868 )
2026-10-24 04:11:32 +07:00
BFlat
2ddf692805
Merge pull request #3513 from Zaxaerith/fix/3497-dash-pattern-preservation
...
fix(stroke): preserve extended dash patterns when editing (#3497 )
2026-10-24 04:11:17 +07:00
BFlat
a18a4c94a3
Merge pull request #3811 from ham9zah/fix/ai-gradient-mesh-one-grid
...
Import: an Illustrator gradient mesh comes in as one connected mesh
2026-10-24 04:11:02 +07:00
BFlat
6abe5ab8cd
Merge pull request #3863 from marcoarnulfo/feat/action-sets
...
Actions: Create New Set and Set Options… name action sets, and a recording goes into the current set (#3712 )
2026-10-24 04:10:45 +07:00
BFlat
586d6b4e87
Merge pull request #3866 from lehni/fix/colour-glyph-cache-key
...
Type: colour glyphs keep each fill's own colour, also between colours that look alike
2026-10-24 04:10:30 +07:00
BFlat
c6a7962388
Merge pull request #3861 from FractalEncrypt/fix/ruby-font-fallback-stability
...
Fix false font fallback misses during concurrent loading
2026-10-24 04:10:14 +07:00
BFlat
583117a408
Merge pull request #3860 from Silvertree2010/fix/h1829-xml-id-unescape-accepts-a-sign-i
...
Reject signed hex digits in XML-ID _xHH_ escapes
2026-10-24 04:10:00 +07:00
bflatastic
9827bfbcbb
SVG import: the shared appearance needs no conversion (clippy)
2026-10-24 03:52:24 +07:00
bflatastic
8e8aaa8683
SVG: a Preserve Editing SVG reopened from disk saves as the full document again ( #3867 )
2026-10-24 03:52:24 +07:00
bflatastic
d9e524df30
SVG entity scan: look for a reference's ';' no further than the longest name
2026-10-24 03:52:24 +07:00
Dylan M. Taylor
98d11ad66b
Audit: cap SVG entity expansion, filter layer stacks and export id/companion probing; share compound-path appearances; escape-proof font feature tags
2026-10-24 03:52:24 +07:00
Jürg Lehni
e372d00cb7
Type: tests pin colour glyphs in variable fonts, on paths and on the canvas
...
A variable font's COLR layers follow its instance, a colour glyph turns with type on a path, and the canvas draws an SVG glyph's art in its own colours and the type's fill.
2026-10-24 03:52:23 +07:00
bflatastic
9f1a001a2b
Export for Screens: a per-artboard EPS takes the artboard as its page, so an empty artboard still writes
2026-10-24 03:52:22 +07:00
Zaxaerith
9985d587f7
fix(stroke): preserve extended dash patterns ( #3497 )
2026-10-24 03:52:22 +07:00
bflatastic
d81145aee3
Artboard documents keep objects without measurable bounds (type in a missing font)
2026-10-24 03:52:22 +07:00
bflatastic
60107cd33a
Export for Screens: a document row for an artboard keeps only that artboard's art ( #3868 )
2026-10-24 03:52:22 +07:00
ham9zah
1653790965
Import: an Illustrator gradient mesh comes in as one connected mesh
...
The editing data writes a gradient mesh as its patches, each with its
place in the grid (`/P`) and the grid's size (`/Size`); the importer
read each patch as a mesh of its own, in a group, so moving a mesh
point tore a patch away and left a hole, and a patch with anchors on
its edges was cut into cells on its own.
The patches are now placed by `/P` in the `/Size` grid and joined at
the corners they share into one GradientMesh. Which index of `/P` runs
along the columns is taken from the one under which the shared corners
meet. Where an edge bends through anchors, a mesh line runs through the
whole row or column of patches there, each patch cut at the same place,
so every cell keeps single-cubic edges. A mesh whose patches don't say
where they are reads as before; one whose patches fill the grid but
don't join up reads as before with a warning. Sizes and lines are
capped; non-finite values fall back.
Hand-written tests: a 2 x 2 grid as one mesh with the old patches'
colours, a moved inner point shared by its four cells, an anchor on a
shared edge adding a line through the mesh, a collapsed patch with
finite values, and unplaced or unjoined patches staying separate.
2026-10-24 03:52:21 +07:00