bflatastic
0934f97627
Fix #1629 : an action clicked in the Actions panel stays selected, so Play and Delete act on it
2026-10-14 07:37:53 +07:00
bflatastic
c10da25ce4
Importers: nesting is capped, so a deeply nested file can't overflow the stack
2026-10-14 07:37:52 +07:00
BFlat
8ab574b7de
Merge pull request #1848 from storytold/u/trace-gradients2
...
Image Trace: gradients grown over noise and soft rims
2026-10-14 07:18:39 +07:00
bflatastic
e0ba6e77d1
Image Trace: gradients grown over noise and soft rims
...
Gradients (off unless asked for) found a blurred or noisy linear gradient in
part or in pieces, with bands around it.
The areas that may be a gradient are tried largest first, and one that is a
gradient is grown over every pixel next to it whose colour is within 10 levels
of the gradient's there: the pixels noise put a little off, a soft rim, the
pieces noise cut off it.
Linear-gradient inputs with Gradients on, paths beside the gradient, before ->
after: blurred 3.0 -> 0.5 (6 Colors) and 55.5 -> 0.5 (High Fidelity Photo);
noisy 11.0 -> 0.5 and 23.5 -> 1.5; scanned 5.5 -> 3.0 and 46.5 -> 37.0; clean
and aliased as before; dE within 0.02. No gradient on any input that is flat
colour, with any preset (the harness fails if there is one).
2026-10-14 07:14:07 +07:00
BFlat
9c289db91d
Merge pull request #1847 from storytold/u/trace-enhanced
...
Image Trace: enhanced versions of the presets
2026-10-14 07:08:27 +07:00
BFlat
b1a5b79d67
Merge pull request #1846 from storytold/u/trace-caps
...
Image Trace: stroked lines get square caps where their ink is cut square
2026-10-14 07:07:45 +07:00
BFlat
156fbe9912
Merge pull request #1845 from storytold/u/trace-shapes2
...
Image Trace: Shapes finds rounded rectangles and shapes in aliased, blurred and scanned art
2026-10-14 07:07:15 +07:00
bflatastic
1f4daf519d
Image Trace: enhanced versions of the presets
...
Each documented preset has an enhanced version (`enhanced: true` in
`imageTrace.make`, an Enhanced checkbox under the panel's preset): the preset
with Auto Grouping, and with Shapes in all but High Fidelity Photo. Gradients
stay an option. Flat Logo, a preset of our own, has none. The legacy presets,
and documents traced with them, are as they were.
So that an enhanced preset is no worse than its preset on that preset's inputs:
- A hole that one colour fills is the same shape as the path that fills it, so
the two still share one outline (a shape beside a fitted hole left slivers).
- A rectangle is as large as where its sides lie on average, not their farthest
points.
- Auto Grouping keeps the paths of a group in the order they were traced in. It
put a path first and what is inside it on top: a white counter traced under
its black letter was then painted over the letter's edge, a light seam
(Default with Auto Grouping, edge dE 10.24 -> 9.88; legacy 10.05).
The harness measures every enhanced preset beside its preset.
2026-10-14 06:43:57 +07:00
bflatastic
638d55983f
Image Trace: stroked lines get square caps where their ink is cut square
...
Create: Strokes drew every line with round caps: a square-ended line 10 px wide
had its corners 2.94 px outside the stroke.
- A line's ends are square when its ink reaches as far a third of the width to
either side of its middle as along it (a round end stops short there by a
seventh of the width); told from lines 3 px wide and more, all the ends of a
line together. The stroke then has square caps (`TracedPath::square_caps`).
- The last points of a wide line's skeleton can turn towards a corner of its
end. An end that has left the line the skeleton followed a width back (by a
quarter of the width, 1 px at least) is put back on it; and an end may be
pulled back as well as pushed out to where the ink ends.
Outline on the thin-line inputs: largest distance from the art 2.94 -> 0.88 px
(clean 2.94 -> 0.41; aliased 0.88 -> 0.81), mean 0.055 -> 0.050 px, anchors
14 -> 10.
2026-10-14 06:43:57 +07:00
bflatastic
c6d9822f26
Image Trace: Shapes finds rounded rectangles and shapes in aliased, blurred and scanned art
...
- A sharp corner may fall up to 0.75 px short within 3 px of where it should be:
anti-aliasing and blur take that much off a corner (not on a thin bar, which
is all corners).
- A rounded rectangle gets the radius that fits its outline best, searched
around the one its area says, instead of that one alone.
- A rectangle's direction is tried along its longest straight side, the longer
axis of its area and the pixel grid: a blurred one may have no straight side.
- A regular polygon's sides, corners and size are read from the outline's shape
(how its distance from the middle goes round, and its area), not from how many
anchors the fitter gave it.
- An outline without anti-aliasing is known to half a pixel: it gets half as
much room again.
Plain shapes found with Shapes on, all sizes and variants: Default 57% -> 98%,
6 Colors 62% -> 100%. The harness counts false shapes: none on any input but one
thin line (a rectangle 2 px wide) whose trace is 0.70 px off with or without
Shapes.
2026-10-14 06:43:57 +07:00
BFlat
fe83800ed5
Merge pull request #1823 from dotCooCoo/feat/hidden-characters-kept-layout
...
Type: Show Hidden Characters keeps each text object's marks between frames
2026-10-14 06:15:01 +07:00
BFlat
567f5edaf3
Merge pull request #1819 from dotCooCoo/feat/rotate-view-keeps-old-texture
...
Canvas: the last frame turns with the view until the frame at the new angle is ready
2026-10-14 06:14:35 +07:00
BFlat
0a6a047fd9
Merge pull request #1817 from dotCooCoo/feat/translucent-type-layout-kept
...
Render: type with transparency, a blend mode or raster effects keeps its layout between frames
2026-10-14 06:14:20 +07:00
BFlat
534f00dfd3
Merge pull request #1820 from dotCooCoo/feat/font-alias-lookup-memo
...
Fonts: a missing font's name is looked up once until fonts are added or rescanned
2026-10-14 06:13:59 +07:00
BFlat
c5b2495291
Merge pull request #1825 from DWAA1660/fix/1729-verified-pngsuite
...
Verify pinned PngSuite downloads before publishing corpus files
2026-10-14 06:13:36 +07:00
BFlat
7dd72dee58
Merge pull request #1815 from DWAA1660/fix/1709-control-event-budget
...
Bound synthetic control input and per-frame request processing
2026-10-14 06:13:09 +07:00
BFlat
d6b63fbc87
Merge pull request #1837 from storytold/docs/progress-1014a
...
Docs: ROADMAP 2026-10-14 adds #1558–#1808 and Image Trace #1647 , #1657 ; guide position in the Transform panel is a convenience
2026-10-14 06:12:40 +07:00
bflatastic
841ea1716d
Canvas: the art texture's quads and the transparency grid share one textured-quad helper
2026-10-14 06:01:10 +07:00
bflatastic
33a5f2a801
Docs: the roadmap lists the interaction pass and the hardening milestones once each
2026-10-14 06:01:10 +07:00
bflatastic
f17ecf4f5c
Docs: ROADMAP 2026-10-14 adds #1558–#1808 and Image Trace #1647 , #1657 ; guide position in the Transform panel is a convenience, not a parity claim
2026-10-14 06:01:10 +07:00
BFlat
dbd2497b82
Merge pull request #1632 from sanyamsingh001/codex/r61-screens-tiff
...
G13: offer TIFF in Export for Screens and Asset Export
2026-10-14 05:42:41 +07:00
BFlat
f9bdad7ee6
Merge pull request #1789 from osamaamin2011/dxf-centerlines
...
DXF export: strokes as zero-width centerlines, a 3ds Max preset, and one VPORT view direction
2026-10-14 05:42:21 +07:00
BFlat
1a7ad48633
Merge pull request #1799 from switch87/fix/1557-css-not
...
SVG import: style sheet rules with :not() selectors apply (#1557 )
2026-10-14 05:42:02 +07:00
BFlat
32950368b3
Merge pull request #1631 from sanyamsingh001/codex/r61-artboard-delete
...
G1: keep Artboard deletion consistent across controls
2026-10-14 05:41:46 +07:00
BFlat
a55453d89c
Merge pull request #1634 from sanyamsingh001/codex/r61-style-range-fix
...
G4: capture character styles from selected text
2026-10-14 05:41:28 +07:00
BFlat
8d2aef8cd9
Merge pull request #1633 from sanyamsingh001/codex/r61-style-auto-leading
...
G4: propagate character-style Auto-leading resets
2026-10-14 05:40:46 +07:00
BFlat
e1c0d92a5e
Merge pull request #1784 from sanyamsingh001/codex/r62-paragraph-alignment
...
G4: show mixed paragraph alignment without a selected button
2026-10-14 05:40:20 +07:00
BFlat
316611374e
Merge pull request #1782 from sanyamsingh001/codex/r62-guide-alt
...
G1: switch new ruler-guide orientation with Alt
2026-10-14 05:39:41 +07:00
BFlat
db0c8e93f0
Merge pull request #1814 from sanyamsingh001/codex/r62-width-create
...
G1: create width points through Width Point Edit
2026-10-14 05:39:24 +07:00
BFlat
5ce38c7b2a
Merge pull request #1630 from sanyamsingh001/codex/r61-width-shift
...
G1: honor Shift-double-click in Width Point Edit
2026-10-14 05:39:08 +07:00
BFlat
a23f5711af
Merge pull request #1809 from Messhias/feat/394-identify-objects-by
...
Part of #394 : Identify Objects By (Object Name / XML ID)
2026-10-14 05:38:49 +07:00
BFlat
327170a8e8
Merge pull request #1750 from Messhias/feat/394-black-output
...
Part of #394 : Appearance of Black › Printing / Exporting
2026-10-14 05:38:34 +07:00
BFlat
216d82a3fd
Merge pull request #1682 from Gamedirection/feat/corner-radius-fields
...
Corner Radius: a field per corner of a live rectangle, with a link toggle
2026-10-14 05:38:16 +07:00
BFlat
449b0d4056
Merge pull request #1670 from AyberkA0/feat/3d-documented-lighting
...
3D and Materials: the light takes the documented settings
2026-10-14 05:37:56 +07:00
BFlat
646abb3c5c
Merge pull request #1669 from AyberkA0/feat/3d-perspective-angle
...
3D and Materials: Perspective runs 0° to 160°, as documented
2026-10-14 05:37:24 +07:00
bflatastic
e2b9705770
Docs: merge rows that two changes edited
2026-10-14 05:16:26 +07:00
bflatastic
a57aea8e94
DXF export: leave out the centerline option and the 3ds Max preset for now
...
The VPORT view direction fix and its test stay. The Export Strokes as
Centerlines option and the preset button are not in the documented DXF/DWG
export options, so they wait for the owner's decision.
2026-10-14 05:16:15 +07:00
bflatastic
301a99d91c
SVG import: nested :not() selectors are bounded
2026-10-14 05:16:03 +07:00
bflatastic
bc50c7fa56
Identify Objects By: rustfmt
2026-10-14 05:13:36 +07:00
bflatastic
cfa65a2148
Appearance of Black › Printing / Exporting: cover ink-plane documents and CMYK exports
...
Drops the documented richBlack parameter: commands don't list it.
2026-10-14 05:12:59 +07:00
BFlat
a3357121fb
Merge pull request #1792 from dotCooCoo/feat/thread-reflow-copies-only-changed-stories
...
Type: an edit copies a threaded story only when it changes one of its frames
2026-10-14 05:07:09 +07:00
BFlat
81d9e37e8f
Merge pull request #1767 from dotCooCoo/feat/open-resolves-links-off-ui-thread
...
Open: the opening thread also reads linked files and lays out type
2026-10-14 05:06:41 +07:00
BFlat
bb70aa8359
Merge pull request #1744 from dotCooCoo/feat/symbol-instance-art-bounds
...
Symbols: instances of imported symbols are measured by their art
2026-10-14 05:06:05 +07:00
BFlat
9258c4ea57
Merge pull request #1690 from dotCooCoo/feat/svg-style-rule-index
...
SVG import: the style cascade looks up each element's rules by id, class and type
2026-10-14 05:05:34 +07:00
BFlat
b0ec580828
Merge pull request #1755 from dotCooCoo/feat/cmyk-transparency-planes
...
Render: the ink planes of CMYK documents with transparency are composed on several threads
2026-10-14 05:04:55 +07:00
BFlat
03e6657e93
Merge pull request #1689 from dotCooCoo/feat/outline-mode-path-caches
...
Render: Outline view draws paths and clipped art from geometry kept between frames
2026-10-14 05:04:17 +07:00
BFlat
aeda9de044
Merge pull request #1688 from dotCooCoo/feat/live-effects-follow-document-edits
...
Render: live objects are evaluated again when patterns, symbols, fonts or color settings change
2026-10-14 05:03:40 +07:00
BFlat
35ecdf2142
Merge pull request #1687 from dotCooCoo/feat/group-backdrop-region
...
Render: the canvas no longer draws its picture back for each non-isolated group that blends
2026-10-14 05:02:02 +07:00
BFlat
1b54bc335d
Merge pull request #1667 from dotCooCoo/feat/stroke-outlines-per-object
...
Render: objects that share an appearance keep their own stroke outlines between frames
2026-10-14 05:01:35 +07:00
bflatastic
37174ac306
Render tests: the symbol art bounds test holds the fonts steady ( #1744 )
2026-10-14 04:56:30 +07:00
bflatastic
caa80fb213
Render tests: the live object tests take the font locks ( #1688 )
2026-10-14 04:56:30 +07:00
bflatastic
819e53fe92
Render tests: the stroke outline tests hold the fonts steady ( #1667 )
2026-10-14 04:56:29 +07:00
BFlat
cd89392ac9
Merge pull request #1739 from KnottyDyes/squad/remote-stale-connection
...
MCP: reconnect closed control sockets before sending requests
2026-10-14 04:43:14 +07:00
BFlat
db1d586674
Merge pull request #1768 from fahrim/fix/1728-jsonrpc-version-and-reply-id
...
Fix #1728 : require the JSON-RPC 2.0 envelope and correlate control replies
2026-10-14 04:42:45 +07:00
BFlat
7543ef966c
Merge pull request #1764 from fahrim/fix/1727-framing-limits
...
Fix #1727 : cap MCP framing input, batches and kept command_batch results
2026-10-14 04:42:21 +07:00
BFlat
67f131d786
Merge pull request #1797 from DWAA1660/fix/1726-control-deadlines
...
Fix control sockets retaining connection slots indefinitely
2026-10-14 04:41:56 +07:00
bflatastic
2366fcfd80
docs/mcp.md: the server reconnects to the app before a call when the connection was closed
2026-10-14 04:31:44 +07:00
bflatastic
7e56066847
MCP: property test for the framing, batch and envelope limits; the refusal without an id is documented ( #1727 , #1728 )
2026-10-14 04:31:44 +07:00
bflatastic
63b0dc4c32
MCP: a connection holding bytes nobody asked for is replaced before the request is sent
2026-10-14 04:31:44 +07:00
bflatastic
d3327b17a1
MCP: a control refusal without an id reports the app's reason instead of an id mismatch ( #1728 )
2026-10-14 04:31:44 +07:00
bflatastic
5336d80196
command_batch: the step whose result passes the size cap says that it ran ( #1727 )
2026-10-14 04:31:43 +07:00
bflatastic
85c81ff1e9
Control: an idle connection is closed without a line, so no error waits where a client's next reply would be ( #1726 )
2026-10-14 04:31:43 +07:00
BFlat
f8396dbc4f
Merge pull request #1663 from ham9zah/pen-drag-threshold
...
Pen: drag threshold, Precise Cursors command and tests
2026-10-14 04:28:59 +07:00
BFlat
fe027037d2
Merge pull request #1795 from danngreen/fix/render-tests-font-race
...
Fix race over font database in tests
2026-10-14 04:28:44 +07:00
BFlat
1369bd0c93
Merge pull request #1785 from sanyamsingh001/codex/r62-import-fuzz
...
CI: isolate text import fuzzing from installed fonts
2026-10-14 04:28:26 +07:00
BFlat
c2a944a686
Merge pull request #1677 from marcoarnulfo/fix/color-picker-remembers-mode
...
Color panel: the mode picked last comes back after a restart
2026-10-14 04:28:10 +07:00
BFlat
e02ffe9513
Merge pull request #1752 from switch87/fix/1748-point-type-align
...
Fix #1748 : text.create takes justify for point type alignment
2026-10-14 04:27:52 +07:00
BFlat
a06899fdd0
Merge pull request #1746 from marcoarnulfo/fix/select-same-type-paint
...
Select > Same: type matches on its characters' fill and stroke
2026-10-14 04:27:35 +07:00
BFlat
422a5d7eb9
Merge pull request #1765 from AyberkA0/fix/1756-expand-repeat
...
Fix #1756 : Object → Expand expands repeats
2026-10-14 04:27:19 +07:00
BFlat
5fb311fb60
Merge pull request #1808 from AyberkA0/fix/1662-ui-scale-slider-medium-dark
...
Fix #1662 : slider rails show on Medium Dark
2026-10-14 04:27:03 +07:00
BFlat
1a506fae4c
Merge pull request #1798 from AyberkA0/fix/1757-palette-arrows
...
Fix #1757 : arrow keys move through the command search results
2026-10-14 04:26:46 +07:00
BFlat
3298c5088c
Merge pull request #1734 from AyberkA0/fix/1661-paintbrush-brackets
...
Part of #1661 : [ and ] reach the tools that take them
2026-10-14 04:26:29 +07:00
BFlat
951bf42714
Merge pull request #1804 from AyberkA0/fix/1679-pencil-keeps-appearance
...
Fix #1679 : a filled pencil path keeps a stroke of None
2026-10-14 04:25:57 +07:00
BFlat
7d5c4b4b9d
Merge pull request #1802 from AyberkA0/fix/1686-esc-text-edit
...
Fix #1686 : Escape in type editing goes to the Selection tool
2026-10-14 04:25:41 +07:00
BFlat
6187a3f462
Merge pull request #1803 from AyberkA0/fix/1743-esc-cancels-point-drag
...
Fix #1743 : Escape cancels a Direct Selection drag
2026-10-14 04:25:22 +07:00
BFlat
589797adef
Merge pull request #1666 from turtwig/main
...
Direct Selection stays inside isolation mode
2026-10-14 04:25:03 +07:00
BFlat
043ea1d525
Merge pull request #1674 from turtwig/fix/delete-selected-anchors
...
Delete removes every selected anchor and keeps the remainder selected
2026-10-14 04:24:46 +07:00
BFlat
a1eb4fc090
Merge pull request #1791 from AyberkA0/fix/1758-cursor-hotspot
...
Fix #1758 : keep the custom title bar window borderless on Windows
2026-10-14 04:24:20 +07:00
bflatastic
3152436020
Brackets: keep to the tools whose size the keys are documented for
...
The typed [ and ] now reach the Blob Brush, the Eraser and the Symbolism
tools, whose bracket keys are in the public shortcut lists. A size of the
Paintbrush's own (and path.freehand's scale) is left out until its
behaviour is decided: #1661 stays open for that.
2026-10-14 03:55:41 +07:00
BFlat
bb8897a2eb
Merge pull request #1787 from MarekSpodBiedry/issue-1637
...
Fix numeric fields reverting a typed value when clicking away instead of pressing Enter (#1637 )
2026-10-14 03:53:08 +07:00
BFlat
4d54fa27e3
Merge pull request #1773 from MarekSpodBiedry/issue-1722
...
Linked files: a change during a drag is applied after the drag, not lost (#1722 )
2026-10-14 03:52:41 +07:00
BFlat
7f93a191c7
Merge pull request #1775 from MarekSpodBiedry/issue-1720
...
Do not journal a failed live preview at commit (#1720 )
2026-10-14 03:52:17 +07:00
BFlat
0f0380b827
Merge pull request #1774 from MarekSpodBiedry/issue-1721
...
Stamp File Info dates only after a save succeeds (#1721 )
2026-10-14 03:51:47 +07:00
BFlat
ae6d70ae19
Merge pull request #1781 from MarekSpodBiedry/issue-1702
...
Search each shared name tree node once when finding the editing file (#1702 )
2026-10-14 03:51:18 +07:00
BFlat
b72ca300ed
Merge pull request #1779 from MarekSpodBiedry/issue-1708
...
Cap Liquify dabs while expanding a segment, not only before it (#1708 )
2026-10-14 03:51:00 +07:00
BFlat
4892384168
Merge pull request #1780 from MarekSpodBiedry/issue-1707
...
Fix scatter X axis ticks looping forever on data near the f64 maximum (#1707 )
2026-10-14 03:49:57 +07:00
BFlat
64f875ff34
Merge pull request #1776 from MarekSpodBiedry/issue-1716
...
Check embedded PNG/JPEG bitmap size from the header before decoding (#1716 )
2026-10-14 03:49:29 +07:00
BFlat
4d0f1dd0f8
Merge pull request #1783 from MarekSpodBiedry/issue-1698
...
Fix #1698 : entries read from memory obey the size limits too, not only streamed ones (#1698 )
2026-10-14 03:49:09 +07:00
BFlat
1e6c17c54b
Merge pull request #1778 from MarekSpodBiedry/issue-1712
...
Create the staging file owner-only when replacing a document (#1712 )
2026-10-14 03:48:51 +07:00
BFlat
6f56ad2e7f
Merge pull request #1777 from MarekSpodBiedry/issue-1713
...
Keep Export for Screens suffix inside the export folder (#1713 )
2026-10-14 03:48:36 +07:00
BFlat
b374fee789
Merge pull request #1786 from MarekSpodBiedry/issue-1696
...
Refuse to package over the source document or its linked files (#1696 )
2026-10-14 03:47:20 +07:00
BFlat
9abdbb0a71
Merge pull request #1807 from AyberkA0/fix/1710-ruzstd-0.9.1
...
Fix #1710 : ruzstd 0.9.1 (RUSTSEC-2026-0344)
2026-10-14 03:47:05 +07:00
bflatastic
d775549258
A press outside a field commits what was typed before the press acts
2026-10-14 03:17:55 +07:00
bflatastic
8a7e36ede8
Background save edited meanwhile: undoing back to the saved state is unmodified ( #1721 )
2026-10-14 03:17:51 +07:00
bflatastic
7abc1cfa10
Scatter overflow test: data that far off the plot is refused, not drawn ( #1707 )
2026-10-14 03:17:49 +07:00
bflatastic
d82d6e3620
Test that a hostile Export for Screens suffix or prefix stays in the export folder ( #1713 )
2026-10-14 03:17:47 +07:00
BFlat
7fc8173253
Merge pull request #1684 from dotCooCoo/feat/mcp-document-reads-faster
...
Control: replies are buffered, so a 17 MB reply is sent in 0.09 s instead of 34 s on Windows
2026-10-14 03:08:58 +07:00
BFlat
466b4b0180
Merge pull request #1652 from marcoarnulfo/fix/canvas-cursor-wayland-scale
...
Cursors: paint the tool cursors on Wayland, where the compositor showed the bitmap twice too big
2026-10-14 03:08:35 +07:00
BFlat
65ec1842ac
Merge pull request #1654 from switch87/fix/1653-eps-hard-stops
...
EPS import: a stitched shading keeps its hard colour changes
2026-10-14 03:04:15 +07:00
BFlat
ad358fb4e4
Merge pull request #1651 from switch87/fix/1648-scribble-regions
...
Scribble: one zig-zag per region, no lines across holes and notches
2026-10-14 03:03:54 +07:00