Commit Graph
9332 Commits
Author SHA1 Message Date
Ahmed Gomaa 93a039d524 UI tests: gradient and rotation controls are found in release builds
Gradient and rotate-view harnesses looked up widgets by egui Id debug
source strings (for example ".with(…)" and "rot-combo"). Those names
exist only with debug assertions, so the same tests panic in --release.
Resolve widgets from stable scope salts / AccessKit labels instead, which
work in both profiles.
2026-11-09 02:03:06 +07:00
Sven Lafebre afe8294c7d Test: anchors picked with a Cmd-lent Direct Selection over other tools are what Copy takes (#6123)
With the Rectangle and Ellipse tools, Cmd lends the selection tool chosen
last, and Copy already took the anchors Direct Selection picked. The
Curvature tool, which Cmd lends Direct Selection, copied the whole path
before this PR, as the Pen did.
2026-11-09 02:03:05 +07:00
Sven Lafebre 8bb99ae455 Docs: record #6123 in the Drawing tools area row and the M2 milestone row
Scores and hours unchanged.
2026-11-09 02:03:05 +07:00
Sven Lafebre 748ac5cf6e Pen: keep a lent pick across tool resets; a gesture that picks nothing keeps the Pen's anchor (#6123)
The remembered selection is now tied to the document it was made in, by its
uid, instead of being cleared on every tool reset: another view of the same
document, or closing an inactive tab, kept the anchors picked but made Copy
take the whole path.

A lent gesture that leaves the selection as it found it (a Cmd+Shift marquee
over nothing) is no longer recorded as a pick, so the Pen's last anchor stays
its own and Copy takes the whole path.

Also records #6123 in target-app-parity.md.
2026-11-09 02:03:05 +07:00
Sven Lafebre 91a0ba4231 Pen: Copy and Cut take the anchors a Cmd-lent Direct Selection picked (#6123)
With the Pen or Curvature tool, Copy and Cut ignore the anchor selection,
so that the last anchor the Pen leaves selected doesn't make Copy take just
that anchor (#2122). Anchors picked with the Direct Selection that Cmd/Ctrl
lends those tools were ignored too, and the whole path was copied.

The session now remembers the selection the lent tool leaves when it gives
the tool back. While that is still the selection, Copy and Cut take the
picked anchors and segments, as with Direct Selection chosen.
2026-11-09 02:03:05 +07:00
NetterSilverandClaude Haiku 5.5 194364304b Strip CSS comments from style attributes and rule declarations
Found while testing crates/svg/src/import/css.rs:20 (parse_decls / split_decls)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-09 02:03:05 +07:00
Sven Lafebre c2c92b7d49 Fix #5188: selected anchors that are no corner keep Shift-click adding 2026-11-09 02:03:04 +07:00
Sven Lafebre e15965199f Fix #5188: the docs say how other corners are added after the first pick 2026-11-09 02:03:04 +07:00
Sven Lafebre a571e242af Fix #5188: a Shift-click on a corner widget of a whole path picks its corner
With Direct Selection, a Shift-click on a corner widget toggled its
corner. With the path selected whole every corner already is, so the
first Shift-click deselected the corner clicked and hid its widget,
leaving the others. While every corner is selected, a Shift-click now
picks that corner alone, as the first click of "click one widget, then
Shift-click the others" does; with some corners picked it still toggles.
2026-11-09 02:03:04 +07:00
Don Omondi d8074562d1 Alt + keypad codes: docs say the Windows path is unit-tested only; fix two comments
The type parity row no longer says the NumLock-on path was tried on
Windows: neither path has been run on a Windows machine yet. The comment
on the NumLock-off egui keys says Clear comes as the top-row 5, and the
test comment names the keys 0151 and 0234 actually use.
2026-11-09 02:03:04 +07:00
Don Omondi 8b6e358f0c Alt + keypad codes: with NumLock off the keypad keys count as digits and don't move the caret
Follow-up to #5939. With NumLock off the keypad sends Insert, End, arrows,
Clear, Home and Page Up/Down; Windows still composes the code from them,
but the app also moved the caret, so the character landed elsewhere. With
Alt held, those keys without the extended-key flag now count as digits and
are taken out of the frame; the separate navigation keys keep their meaning.
2026-11-09 02:03:03 +07:00
NetterSilverandClaude Haiku 5.5 b73a880b3c Cut PSD Unicode layer names on a character boundary
Found while testing crates/render/src/encode/psd.rs:225

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-09 02:03:03 +07:00
Sven Lafebre b2acf71764 Fix #5960: find how far gradient ribs reach in one pass along the path
Each rib of a dashed stroke with a width profile looked up to 256 points
either way along the path, asking the profile at every step, and reached
as wide as the stroke gets anywhere past that. A sliding maximum over the
points' precomputed cover now gives every rib's reach in time in
proportion to the points, with no bound and no fallback to the widest
width (review on #6093).
2026-11-09 02:03:03 +07:00
Sven Lafebre 6d18549edc Fix #5960: evidence entry in the parity document 2026-11-09 02:03:03 +07:00
Sven Lafebre 8f975aa0c5 Fix #5960: a narrow part of a variable-width stroke paints over a wide part only where they overlap
With a width profile, every slice of a stroke gradient (along or across)
reached as far as the stroke is wide anywhere. Where the stroke crosses
or runs close by itself, the later, narrower part painted a square of
its colour over the wider part beside it, clipped only to the whole
outline. Each rib now reaches as far as the stroke is wide there and on
its way to the next points (each side of a profile stays between its
widths at a span's points); for a dashed stroke, as wide as it gets
within a cap's reach, since caps and dots reach along the path.
2026-11-09 02:03:02 +07:00
Davit MatchakhelidzeandClaude Sonnet 5.5 82596bacc7 i18n(ka): Georgian for 1 new string
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-09 02:03:02 +07:00
M Balazs PC 7f7c4cf9ad .ai import: test every paint mask art takes, and that it stays in the mask
The mask test now checks the whole fill and stroke (colour, overprint,
width, cap, join, miter, dash) and the fill rule against the owner's,
and that an object after the mask's dictionary paints with the owner's
paint, not the paint the mask's art set. open_mask_object gets a doc
comment.
2026-11-09 02:03:02 +07:00
M Balazs PC 500ff6ed4c .ai import: opacity mask art without its own paint takes the paint before its dictionary
A dictionary's state starts afresh, with a black fill. Mask art is written
going on from the paint before the mask's dictionary, which the writer leaves
out when it doesn't change, so a mask rectangle with no colour of its own
came in black and hid the white letters it masks. Mask art now starts from
the paint (fill, stroke, line style, fill rule, overprint) before the
dictionaries it is in; lock, visibility and transparency still start afresh.
2026-11-09 02:03:02 +07:00
Don Omondi d4f6fa0744 EPS/.ai editing data: art-style strokes aligned inside or outside keep their alignment
Squashed from #6010 onto main.
2026-11-09 02:03:01 +07:00
ruchirguitar b1f52d1369 Select Text by Font: limit it to artboards or layers (#5529)
Squashed from #5578 onto main.
2026-11-09 02:03:01 +07:00
Dylan M. Taylor 2ead0afaa0 affinity import: share one work and name budget across repeated links of shared objects 2026-11-09 02:03:00 +07:00
VladimirCeric e3817d6b50 Typographer's Quotes: a lone typed ” opens like a straight quote
Squashed from #5459 onto main.
2026-11-09 02:03:00 +07:00
NetterSilverandClaude Opus 5.5 05a242ff77 Scale the EPS operation budget with the program's length
Fixes #5363

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 02:03:00 +07:00
BFlat c62a8d27e0 Merge pull request #6230 from dotCooCoo/fix/ai-defs-art-styles
.ai import: objects in pattern and brush art take the file's art styles
2026-11-09 02:06:49 +08:00
BFlat 5a2b81bc93 Merge pull request #6226 from dotCooCoo/fix/ai-save-vertical-roman
.ai save: the editing copy keeps Standard Vertical Roman Alignment
2026-11-09 02:06:34 +08:00
BFlat ec732076a4 Merge pull request #6222 from dotCooCoo/fix/swatch-new-gradient-link
Swatches: a new swatch holds no link or placement from the paint it is made from
2026-11-09 02:06:18 +08:00
BFlat 3355bdd100 Merge pull request #6219 from dotCooCoo/fix/ai-gradient-swatch-self-link
.ai import: a palette gradient swatch's paint is not linked to itself
2026-11-09 02:06:03 +08:00
BFlat 3d1a1ee0de Merge pull request #6218 from dotCooCoo/fix/workspace-dialog-test-gap-above
Tests: workspace and toolbar dialog test checks the gap above OK and Cancel's place
2026-11-09 02:05:46 +08:00
BFlat 5613b4d10e Merge pull request #6217 from dotCooCoo/fix/ai-ate-vertical-roman
.ai import: type keeps Standard Vertical Roman Alignment from its editing data
2026-11-09 02:05:30 +08:00
BFlat 42cc222ca2 Merge pull request #6216 from dotCooCoo/fix/symbols-reset-transformation-doc-entry
Docs: the Reset Transformation entry is listed once in the evidence list
2026-11-09 02:05:14 +08:00
BFlat 5c6d868e5a Merge pull request #6208 from dotCooCoo/fix/type-escape-doc-prior-tool
Type: docs say Escape returns to the tool that double-clicked into the type
2026-11-09 02:04:55 +08:00
BFlat 73e8a97c3c Merge pull request #6207 from dotCooCoo/fix/legacy-ai-align-to-path-lost
Legacy .ai: the type attributes warning covers kerning, margins, Align to Path and end brackets
2026-11-09 02:04:45 +08:00
BFlat fb17bf51c9 Merge pull request #6206 from dotCooCoo/fix/svg-textpath-effects
SVG export: type on a path with Skew, 3D Ribbon, Stair Step or Gravity keeps its look
2026-11-09 02:04:28 +08:00
BFlat 47aeadbdc1 Merge pull request #6203 from dotCooCoo/fix/flyout-panels-follow-up
Panels: tests pin the palette windows staying shown for torn-off strips and new toolbars
2026-11-09 02:04:13 +08:00
BFlat 0558f0fd25 Merge pull request #6202 from dotCooCoo/fix/ai-editing-copy-one-paragraph
.ai import: the editing-copy paragraph in the file-format doc appears once
2026-11-09 02:03:56 +08:00
BFlat e0155f3c28 Merge pull request #6200 from dotCooCoo/feat/svg-filters-effect
Effects: Effect › SVG Filters applies the document's SVG filters as live effects
2026-11-09 02:01:11 +08:00
BFlat 615aeb4361 Merge pull request #6199 from dotCooCoo/fix/placed-gradient-follows-transform
Effects: placed gradients move with Transform and Free Distort effects
2026-11-09 02:00:58 +08:00
BFlat b632e69e5f Merge pull request #6198 from dotCooCoo/fix/plugin-fuzz-bulk-memory
Plug-ins: the fuzz test generates bulk memory operations
2026-11-09 02:00:41 +08:00
BFlat cc2f9a3e3e Merge pull request #6195 from dotCooCoo/fix/envelope-top-object-sides
Envelopes: a top object's sides share the content by control polygon length
2026-11-09 02:00:22 +08:00
BFlat c036f56844 Merge pull request #6191 from dotCooCoo/fix/pathops-vc-merge-per-key
Path ops: Merge finds every fill's faces in a few contour passes instead of one per fill
2026-11-09 02:00:04 +08:00
BFlat 782f213e48 Merge pull request #6185 from dotCooCoo/feat/plugin-safe-mode
Plug-ins: Safe Mode starts without plug-ins, offered after a launch stops while one loads
2026-11-09 01:59:47 +08:00
BFlat 188316b092 Merge pull request #6178 from dotCooCoo/feat/js-interpreter
JavaScript: vectorcraft-js runs ES5 scripts with a garbage-collected heap and execution limits
2026-11-09 01:59:35 +08:00
BFlat c9b40ea58f Merge pull request #6169 from dotCooCoo/feat/pixel-align-property
Transform: Align to Pixel Grid keeps an object's horizontal and vertical edges on the pixel grid
2026-11-09 01:59:18 +08:00
BFlat 23c8b4c11a Merge pull request #6168 from dotCooCoo/feat/export-3d-mesh
Asset Export: 3D objects export as USDA, USDZ, glTF or OBJ meshes
2026-11-09 01:59:00 +08:00
BFlat 51c28f6e17 Merge pull request #6149 from dotCooCoo/feat/load-aia-actions-2
Actions: Load Actions… reads action sets saved as .aia files
2026-11-09 01:58:41 +08:00
BFlat f110a8d6d1 Merge pull request #6144 from dotCooCoo/perf/distinct-masks
Path ops: region building lists the shapes covering each region instead of a flag per shape
2026-11-09 01:58:25 +08:00
BFlat dbf7fb0045 Merge pull request #6136 from dotCooCoo/feat/ai-editing-data-symbols
.ai save: the editing copy keeps symbols and their instances
2026-11-09 01:58:07 +08:00
BFlat 9135c4bc57 Merge pull request #6111 from dotCooCoo/feat/artboard-edge-add
Artboard tool: buttons on the selected artboard's edges add an artboard beside it
2026-11-09 01:57:51 +08:00
BFlat 7dc2bfd378 Merge pull request #6101 from dotCooCoo/feat/app-title-bar-on-desktop-frames-r
Title bar: a Linux and BSD preference uses the app bar where the desktop draws the frame
2026-11-09 01:57:35 +08:00
BFlat 8f505ed8c2 Merge pull request #6100 from dotCooCoo/fix/catalog-bare-values
i18n: error messages in every catalog keep true, false, null and the keys they name
2026-11-09 01:57:18 +08:00