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
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
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
Marco Arnulfo
d0919ad0df
Actions: Create New Set and Set Options… name action sets, and a recording goes into the current set ( #3712 )
2026-10-24 03:52:20 +07:00
Jürg Lehni
7efd8f941a
Type: colour glyphs keep each fill's own colour, also between colours that look alike
...
The colour glyph cache keyed the text's colours by their 8-bit RGB look, so a fill that only looked like an earlier one (a grey and the same RGB grey, a spot colour and its process match) took that one's colour, and its separations. It now keys them exactly.
2026-10-24 03:52:15 +07:00
FractalEncrypt
25abd1f472
text: recheck concurrently loaded fallback faces
...
A system fallback search can add no new face because another lookup loaded it
first. Re-read the loaded faces regardless of the search's return value, so
concurrent first use does not produce a missing glyph and different advances.
Add an isolated generated-font regression with simultaneous cold lookups.
The original code missed 14 of 16 lookups; the fixed regression passed twenty
runs. Both previously failing Ruby tests pass unchanged.
Validation: Rust 1.98.1 cargo xtask ci, all 10 gates passed; workspace tests
9,635 passed, 0 failed, 14 ignored. Default Rust toolchain unchanged.
2026-10-24 03:52:15 +07:00
NetterSilver and Claude Haiku 5.5
add5e1e7dd
Reject signed hex digits in XML-ID _xHH_ escapes
...
Found while testing crates/doc/src/xml_id.rs:80 (escaped)
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-24 03:52:14 +07:00
Dylan M. Taylor
c4fba30b9c
ci(sonar): don't cancel superseded runs on main, so coverage is published ( #3881 )
2026-10-23 16:51:11 -04:00
BFlat
902abf0242
Merge pull request #3874 from storytold/docs/gaps-dedupe
...
Docs: one ranked-table row each for G2 and G13 in gaps.md
2026-10-24 03:32:28 +07:00
bflatastic
255ce30103
Docs: one ranked-table row each for G2 and G13 in gaps.md
2026-10-24 03:31:54 +07:00
BFlat
f6c716839e
Merge pull request #3781 from Taha-Mahmoodi/feat/start-global-edit
...
Select: Start Global Edit edits the objects of the same shape together, each in proportion
2026-10-24 03:13:36 +07:00
BFlat
a16489256b
Merge pull request #3780 from dotCooCoo/feat/paragraph-bullets
...
Type: the Paragraph panel's Bullets button turns paragraphs into a bulleted list
2026-10-24 03:13:19 +07:00
BFlat
7f57a3a3f5
Merge pull request #3833 from Taha-Mahmoodi/feat/symbol-libraries
...
Symbols: Window › Symbol Libraries opens symbol libraries whose symbols click into the document's Symbols
2026-10-24 03:13:01 +07:00
BFlat
7d7af6b952
Merge pull request #3817 from Taha-Mahmoodi/feat/2572-thread-ports
...
Type: selected type shows its in and out ports, and the in port threads backwards
2026-10-24 03:12:44 +07:00
BFlat
629a4c528e
Merge pull request #3832 from Taha-Mahmoodi/feat/distance-guides
...
Smart Guides: Alt over another object or the artboard shows the selection's distances to it
2026-10-24 03:12:28 +07:00
BFlat
b5df562df7
Merge pull request #3785 from Taha-Mahmoodi/feat/pathfinder-trap
...
Pathfinder: Trap spreads the lighter colour into the darker as an overprinting strip where solid colours meet
2026-10-24 03:12:10 +07:00
BFlat
b3f5b6c7a4
Merge pull request #3831 from Taha-Mahmoodi/feat/artboard-video-display
...
Artboards: Artboard Options shows video safe areas and sets the pixel aspect ratio that View › Rulers › Show Video Rulers counts the artboard in
2026-10-24 03:11:53 +07:00
BFlat
0f493464c0
Merge pull request #3815 from Taha-Mahmoodi/feat/2691-grid-arc-tool-options
...
Tools: double-clicking the Line Segment, Arc, Rectangular Grid and Polar Grid tools opens their Tool Options
2026-10-24 03:11:37 +07:00
BFlat
408ed5441c
Merge pull request #3834 from MajedAlaejem/fix-select-text
...
feat: display point type baselines for node outlines and add hover test
2026-10-24 03:11:19 +07:00
BFlat
313ee822a5
Merge pull request #3778 from dotCooCoo/feat/pen-eraser-end-linux
...
Pen tablets: a pen's eraser end selects the Eraser on Linux under X11 and XWayland
2026-10-24 03:11:01 +07:00
BFlat
92898e5a73
Merge pull request #3854 from danngreen/feat/library-list-view
...
PR title: Libraries panel: show items as icons or in a list
2026-10-24 03:10:44 +07:00
BFlat
92d7937305
Merge pull request #3846 from marcoarnulfo/feat/pencil-shift-straight
...
Pencil: Shift held at the press draws a straight line at 45° steps
2026-10-24 03:10:26 +07:00
BFlat
791aaccbb9
Merge pull request #2847 from haranishi/review/statusbar-ruler-origin-20261018
...
Fix status-bar coordinates after changing the ruler origin
2026-10-24 03:10:09 +07:00
BFlat
c1ef2ce61c
Merge pull request #3775 from lewandowskit/pl-terminologia-2
...
i18n(pl): "Wtyczki i dyski robocze", "Geometryczne linie pomocnicze"
2026-10-24 03:09:57 +07:00
BFlat
221002194e
Merge pull request #3842 from Janiz-zzz/fi-fixes-20261023
...
i18n(fi): fix package-note spacing and a few Finnish labels
2026-10-24 03:09:40 +07:00