Commit Graph
12900 Commits
Author SHA1 Message Date
dotCooCoo b93a26509f Merge main into fix/web-open-keeps-both-link-lines 2026-11-14 01:50:49 -08:00
BFlat 47500c42c2 Merge pull request #7514 from storytold/fix/cs-bracket-fields
i18n: Czech keeps [subpath, anchor] in English (fix main)
2026-11-14 15:38:38 +07:00
bflatastic 04a2f1c6b9 i18n: Czech keeps [subpath, anchor] in English
The Czech message rows (#7355) and the rule that bracketed field names stay in English (#7392)
landed in the same batch; four Czech rows translated [subpath, anchor], so main fails
translated_messages_keep_the_field_names_and_values_their_english_lists.
2026-11-14 14:35:02 +07:00
BFlat 2e9c9ab200 Merge pull request #7392 from dotCooCoo/fix/hindi-literal-values
i18n: messages keep bracketed field names and accepted values in English
2026-11-14 13:44:17 +07:00
BFlat 9ce826bc24 Merge pull request #7358 from dotCooCoo/feat/actions-button-mode
Actions: Button Mode shows actions as colored buttons that play on a click
2026-11-14 13:44:09 +07:00
BFlat 05409f76f5 Merge pull request #7394 from dotCooCoo/fix/ai-linked-image-warp
.ai save: a linked image with a Warp keeps its live Warp and its link
2026-11-14 13:44:00 +07:00
BFlat 44aebeba77 Merge pull request #7393 from dotCooCoo/fix/recovery-keeps-open-notes
Recovery: restoring documents keeps their linked-file lines and warnings
2026-11-14 13:43:52 +07:00
BFlat 6beeb9e2a4 Merge pull request #7262 from dotCooCoo/feat/smooth-cursor-without-path
Smooth: the cursor shows Not Allowed when no path is selected to smooth
2026-11-14 13:43:44 +07:00
BFlat 27f8cf90f5 Merge pull request #7351 from dotCooCoo/fix/titlebar-pref-note
Preferences: System Title Bar says when the desktop keeps the title bar either way
2026-11-14 13:43:36 +07:00
BFlat 2169e229f6 Merge pull request #7376 from dotCooCoo/fix/int-param-wrong-type
MCP: an integer given as a string or a fraction is refused as the wrong type, not reported as missing
2026-11-14 13:43:27 +07:00
BFlat 508ff987f5 Merge pull request #7374 from dotCooCoo/fix/shape-builder-hover-ended
Shape Builder, Live Paint Selection: hover highlights go when the pointer leaves the canvas
2026-11-14 13:43:20 +07:00
BFlat ab959b95a8 Merge pull request #7369 from dotCooCoo/fix/ai-hidden-ruler-guide
.ai import: hidden ruler guides open as ruler guides with their own state
2026-11-14 13:43:11 +07:00
BFlat d3ac2434f5 Merge pull request #7397 from dotCooCoo/fix/dimension-first-preview
Dimension tool: the first preview of a drag-out is drawn at the pointer
2026-11-14 13:43:03 +07:00
BFlat 18266da1e1 Merge pull request #7328 from dotCooCoo/fix/save-unused-option-notes
Save, Export for Screens: warnings name an option the file doesn't read
2026-11-14 13:42:55 +07:00
BFlat 0f88bb1fa9 Merge pull request #7372 from dotCooCoo/feat/home-learn-section
Home: a Learn section lists the tutorials and the Quick skill guide
2026-11-14 13:42:47 +07:00
BFlat 0ca2952093 Merge pull request #7363 from dotCooCoo/fix/stained-instance-export
Symbols: a stained instance keeps its stain in SVG, PDF and the other exports
2026-11-14 13:42:39 +07:00
BFlat aa5b635b32 Merge pull request #7388 from dotCooCoo/fix/snap-glyph-parametric-slice
Smart Guides: Parametric Shape and Slice tools snap as the drawing tools do
2026-11-14 13:42:31 +07:00
BFlat be93e4b3f2 Merge pull request #7377 from dotCooCoo/fix/symbol-expand-reset-bbox
Symbols: Break Link and Expand keep an instance's bounding box
2026-11-14 13:42:23 +07:00
BFlat 2a56e33953 Merge pull request #7355 from dotCooCoo/fix/cs-message-rows
i18n: Czech translates 1,813 of the status and error messages the untranslated report lists
2026-11-14 13:42:12 +07:00
BFlat 4b3df93745 Merge pull request #7371 from dotCooCoo/fix/batch-swatch-default-paint
Swatches: swatch steps in a batch change the paints for new art
2026-11-14 13:42:04 +07:00
BFlat 7fd4564c0c Merge pull request #7390 from dotCooCoo/fix/hyphenation-exceptions-relayout
Type: hyphenated type lays out again when the hyphenation exceptions change
2026-11-14 13:41:57 +07:00
BFlat 57933a8046 Merge pull request #7385 from dotCooCoo/fix/type-panels-story-wide
Type: Character and Paragraph panel changes apply to every frame of a selected story
2026-11-14 13:41:46 +07:00
BFlat 8cc8ab0781 Merge pull request #7352 from dotCooCoo/fix/zh-hant-message-rows
i18n: Traditional Chinese has a row for 1,813 of the messages the untranslated report lists
2026-11-14 13:41:36 +07:00
BFlat d8f180006a Merge pull request #7382 from ncic/pencil-alt-close-straight
Pencil: a closed stroke closes with a straight segment
2026-11-14 13:41:27 +07:00
BFlat 19dfce800a Merge pull request #7384 from storytold/fix/font-menu-test-settle
Tests: font menu tests draw until the menu stays put
2026-11-14 13:41:17 +07:00
BFlat ecd4b80af2 Merge pull request #7395 from storytold/fix/warichu-test-text-ops
Tests: warichu PDF check reads only text objects
2026-11-14 13:41:10 +07:00
dotCooCoo 48f64fbe10 Merge main into fix/web-open-keeps-both-link-lines 2026-11-13 22:38:02 -08:00
BFlat e56d1c7dce Merge pull request #7407 from storytold/fix/fmt-craft-libs-migration
Fix main CI after the craft-libs migration (fmt, wasm)
2026-11-14 12:46:39 +07:00
Dylan M. Taylor c11ee11c1c Merge pull request #7454 from storytold/codex/fix-ci
Fix CI formatting after craft-libs cutover
2026-11-14 00:44:10 -05:00
Dylan M. Taylor 2ce569a6a7 Format svg adapter after craft-libs cutover 2026-11-14 05:14:16 +00:00
bflatastic ff9222c1d4 xtask: name wasm crates by package id
craft-svg builds against an older vectorcraft-geom and vectorcraft-pathops by git, so the
graph holds two packages of each name and `cargo check -p vectorcraft-geom` is ambiguous.
The wasm step now passes each workspace crate's package id.
2026-11-14 11:55:41 +07:00
bflatastic f56146635f SVG: rustfmt the SVGZ error arms
#7398 left crates/svg/src/lib.rs unformatted, so main's CI stopped at
fmt and skipped clippy and the tests.
2026-11-14 10:47:02 +07:00
dotCooCoo 77686c9d17 Merge main into fix/web-open-keeps-both-link-lines 2026-11-13 19:24:46 -08:00
dotCooCoo c0b9eed99f Links: a web open with missing and modified links shows both lines
On the web, a document that opened with linked files it can't read and
linked files that changed on disk showed only the line about the changed
files when Update Links doesn't ask. The status bar now shows the line
about the unreadable files and lists the line about the changed files as
the first note in its hover, ahead of the open's notes. With Ask When
Modified the update question opens and the line about the unreadable
files stays, as before.
2026-11-13 19:24:07 -08:00
Dylan M. Taylor 1e4e3534f5 Merge pull request #7398 from storytold/feat/craft-libs-migration
Migrate CAD (DXF), EPS/PostScript, and SVG to craft-libs (#778)
2026-11-13 22:14:10 -05:00
dotCooCoo 485636acf8 Merge main into fix/zh-hant-message-rows 2026-11-13 19:09:36 -08:00
dotCooCoo dea57b348b Dimension tool: the first preview of a drag-out is drawn at the pointer
Dragging out a dimension from a segment (Linear) or a corner (Angular)
drew its first preview frame at the wrong distance. The preview placed
the dimension at the pointer before reading the segment's end points or
the corner from the art, and measured the offset from the placeholder
points the dimension starts with. A drag from the top edge of a
rectangle to 40 pt above it showed an offset of 60 instead of -40.

The preview now clears the offset, reads the art's points, places the
dimension at the pointer and checks the result. Clearing the offset
keeps an out-of-range offset from the last pointer position from
failing the read.

Tests: the segment and corner drag-out tests fail without the change.
placement_recovers_after_a_position_out_of_range also passes on main;
it fails when only the offset clear is removed.
2026-11-13 19:08:02 -08:00
bflatastic 3da4c4ba13 Tests: warichu PDF check reads only text objects
warichu_is_a_character_attribute_set_saved_and_exported looked for Tj or
TJ anywhere in the exported PDF. The file ID in the trailer and the XMP is
a base64 hash that changes each second and now and then spells one of
them, so the test failed on main twice (bf3cf422e, 446bf59bc) while
export outlines warichu type every time. It now counts text-object lines
only, as the colour font PDF test already does.
2026-11-14 10:06:23 +07:00
dotCooCoo 751b50bf58 i18n: messages keep bracketed field names and accepted values in English
49 status and error messages in the Hindi, Bulgarian, Danish,
Indonesian, Dutch, Brazilian Portuguese, Swedish and Turkish catalogs
translated the field names in brackets, such as `[subpath, anchor]` or
`[start, end]`, which the parameter documentation spells in English, or
the values an `unknown` or `bad model` message lists, such as
`(points, lines)` or `(left|right|top|bottom)`. Commands match those
values against the English words, so a user who passed the translated
value got the same error again. These rows now keep the English names
and values and translate the rest of the sentence.

A new test, translated_messages_keep_the_field_names_and_values_their_english_lists,
checks every catalog for bracketed field lists, `a|b|c` value lists and
the values listed in parentheses after `unknown` and `bad model`.
2026-11-13 19:01:48 -08:00
dotCooCoo 1dc8b72bbf Type: hyphenated type lays out again when the hyphenation exceptions change
Changing Preferences › Hyphenation › Exceptions bumped each open
document's revision, but the caches of laid-out type outside the text
crate were keyed on the font generation alone. The renderer kept the
glyph geometry, raster-effect pixels, live-effect and envelope art,
pattern tiles and placed symbol art of unchanged type objects, so
hyphenated area type kept its old line breaks on the canvas. The
hit-test art of blends and envelopes, the Fit to Artwork Bounds answer,
the layout caches of the Type and Touch Type tools and the out port's
overflow mark were keyed the same way.

vectorcraft_text::layout_inputs() returns a number that changes with
the fonts and with the hyphenation exceptions. Every one of those
caches now keys on it instead of FontDb::generation(), and envelope ink
uses it in place of the private envelope_ink_inputs(). The hit-test key
hashes it together with the plug-in revision.

Tests: a renderer that drew hyphenated area type, alone, with a drop
shadow, in a group with a Transform effect, in a symbol instance and in
an envelope, draws it as a new renderer does after the exceptions
change; the out port of selected area type shows the overflow that the
new exceptions cause. The render test helpers that run a step again
when the fonts change during it now also run it again when the
exceptions change.
2026-11-13 18:56:48 -08:00
dotCooCoo 87c8def043 .ai save: a linked image with a Warp keeps its live Warp and its link
A linked image whose appearance is one Warp effect, with no opacity mask,
was saved to the .ai editing data as its drawn art, so its live Warp was
lost. It is now written with an art style of that Warp, as an embedded
image is: its bent pieces are its drawn look, and the image itself
follows on %_ lines as a placed file with its path, its folder relative
to the document's and its preview. In an opacity mask's art the copy is
embedded, with the existing warning for linked images in masks.

Opening such a file reads the image back linked, with its Warp live.
A hidden image with a Warp, embedded or linked, is now compared with its
drawn look shown, so it keeps its Warp too; before, the look drew
nothing and the image came in as its drawn pieces.
2026-11-13 18:51:03 -08:00
dotCooCoo fecf724501 Smart Guides: Parametric Shape and Slice tools snap as the drawing tools do
The Parametric Shape tool's center and the Slice tool's corners snapped
with Smart Guides to the bounds of the art only, so View › Snap to Glyph
had no effect on them, and neither did the anchors and segments of
paths that the other drawing tools snap to. The point dragged out from a
Parametric Shape's center did not snap at all, and neither tool showed
Smart Guides while hovering before a press.

Both tools now snap through the drawing tools' shared snapping
(DrawSnap). A Parametric Shape's center (from a drag or a double-click),
the point dragged out from it, and a slice's corners land on glyph
guides and on path anchors and segments. The guides show while hovering
and during the drag. When a ruler guide then takes a slice corner, the
Smart Guides are no longer shown. A click with the Parametric Shape tool
still draws nothing when its center snaps a few pixels from the pointer.

Docs: docs/mcp.md, docs/target-app-parity.md.
2026-11-13 18:50:03 -08:00
dotCooCoo 59084a3aab Merge main into fix/recovery-keeps-open-notes 2026-11-13 18:48:54 -08:00
dotCooCoo 01de2a14cf Recovery: restoring documents keeps their linked-file lines and warnings
After Restore in the dialog Data Recovery shows at launch, the status
bar wrote the restore count over the line about the restored document's
linked files, and the warnings each copy restored with were never shown.

The status bar now shows the count followed by the first of the
restored documents' notes: each document's lines about its linked
files, then its warnings, what reading the copy left out first, named
with the document's title when more than one was restored. Hovering
the message lists them all. The count is the number of documents
restored.

The questions about each restored document's missing or modified
linked files now come one document at a time, with that document made
the current one, so a later document's question no longer replaces an
earlier one's. When a copy can't be restored, the status bar shows the
error and its hover keeps the count and the restored documents' notes.
2026-11-13 18:47:55 -08:00
bflatastic 797fcf16db Tests: font menu tests draw until the menu stays put
egui places an Area by the size it had the frame before. When a family
name measured late (a face added for its script, a font found in the
background) widened the menu on the helper's last frame, that frame drew
it where the narrower menu fit, and a_menu_wider_than_its_field_stays_in_the_window
saw it 0.7 pt past the window's edge (three failed CI runs on 2026-11-13).
The helper now draws until the menu stops moving.
2026-11-14 09:37:35 +07:00
BFlat 446bf59bc2 Merge pull request #7265 from dotCooCoo/feat/live-paint-cursor-swatch-preview
Live Paint Bucket: Cursor Swatch Preview and arrow keys pick swatches
2026-11-14 09:33:39 +07:00
BFlat 02dd94e9b8 Merge pull request #7347 from dotCooCoo/fix/corner-set-member-keys
Path Precision Tools: Corner commands refuse unknown item keys
2026-11-14 09:33:31 +07:00
BFlat e026414c70 Merge pull request #7348 from dotCooCoo/fix/csv-utf16-no-bom
Variables: Import Data Sets reads UTF-16 CSV files without a byte-order mark
2026-11-14 09:33:23 +07:00
BFlat caa56c2739 Merge pull request #7334 from dotCooCoo/fix/wrap-offset-length-field
Text Wrap: Offset is a distance in the document's units
2026-11-14 09:33:15 +07:00
BFlat af8907ce8c Merge pull request #7356 from dotCooCoo/fix/pl-message-rows
i18n: Polish has a row for 1,808 of the messages the untranslated report lists
2026-11-14 09:33:07 +07:00