BFlat
a901c024e5
Merge pull request #7387 from dotCooCoo/feat/arrange-nest
...
Cutting Tools: Nest Shapes packs the selected objects onto a sheet or roll
2026-11-15 04:22:37 +07:00
BFlat
20ae675b9b
Merge pull request #7622 from dotCooCoo/fix/graph-label-restyle-keeps-plot
...
Graphs: restyling the labels leaves the plot where it is at the next redraw
2026-11-15 04:22:27 +07:00
BFlat
88dd37d2d9
Merge pull request #7527 from dotCooCoo/fix/3d-masked-cap-graphic-once
...
3D: a gradient fill with transparent stops and its stroke draw their graphic once
2026-11-15 04:22:18 +07:00
BFlat
88b83a8689
Merge pull request #7546 from dotCooCoo/fix/svg-raster-keeps-resolution
...
SVG import: a raster stored again as PNG keeps its resolution
2026-11-15 04:22:10 +07:00
BFlat
e6b31e00d2
Merge pull request #7458 from dotCooCoo/fix/eps-cshow-composite-codes
...
EPS import: cshow runs once for each character of a composite font
2026-11-15 04:22:01 +07:00
BFlat
3bab3b6f5b
Merge pull request #7444 from dotCooCoo/fix/later-span-taller-line-clears
...
Type: a taller line in a further span beside a wrap object no longer reaches into the line above
2026-11-15 04:21:51 +07:00
dotCooCoo
c10b1b3933
Merge main into feat/arrange-nest
2026-11-14 12:28:19 -08:00
BFlat
107078ad10
Merge pull request #7579 from dotCooCoo/fix/pt-br-relink-and-feature-names
...
i18n: Brazilian Portuguese spells Relink correctly and calls process colors "cor de processo" in two messages
2026-11-15 03:23:15 +07:00
BFlat
b0470e9b53
Merge pull request #7450 from dotCooCoo/fix/learn-panel-commands
...
Learn: the tabs, skill and tutorial rows and Back run commands
2026-11-15 03:23:07 +07:00
BFlat
2e3fc0b59a
Merge pull request #7616 from dotCooCoo/fix/ai-save-outlined-wrap-object
...
.ai save: type written as outlines keeps wrapping by its bounds
2026-11-15 03:22:56 +07:00
BFlat
1a8614f00c
Merge pull request #7550 from dotCooCoo/fix/graph-wedge-legend-black-kept
...
Graphs: a black fill set on wedge legend labels stays black on dark wedges
2026-11-15 03:22:47 +07:00
BFlat
ddfe6fda67
Merge pull request #7560 from dotCooCoo/fix/type-no-op-undo-more
...
Undo: no step when Ruby, Character or another type command changes nothing
2026-11-15 03:22:37 +07:00
BFlat
85ce363b93
Merge pull request #7548 from dotCooCoo/fix/objects-on-path-widgets-flatten-once
...
Objects on Path: the widgets flatten the group's path once per lookup
2026-11-15 03:22:27 +07:00
BFlat
0a1445a0d9
Merge pull request #7623 from dotCooCoo/fix/artboard-history-index-wrong-type
...
MCP: a malformed artboard or history index is reported as not a whole number
2026-11-15 03:22:19 +07:00
BFlat
bd214c124d
Merge pull request #7640 from dotCooCoo/feat/canvas-character-alternates
...
Type: a selected character's alternate glyphs show beside it on the canvas
2026-11-15 03:22:11 +07:00
BFlat
7389d6669d
Merge pull request #7396 from dotCooCoo/feat/smooth-keeps-corners
...
Smooth tool: keep corners where the path turns by more than 57.5°
2026-11-15 03:22:01 +07:00
BFlat
2c6c88ebc5
Merge pull request #7604 from dotCooCoo/fix/pdf-art-bounds-printing-layers
...
Export: a page of the art's bounds is measured on the art the file draws
2026-11-15 03:21:52 +07:00
BFlat
6970c4efec
Merge pull request #7609 from dotCooCoo/fix/transform-copies-raster-effects
...
Effects: each copy of a Transform effect draws the raster effects listed before it
2026-11-15 03:21:43 +07:00
BFlat
0222da8e6f
Merge pull request #7522 from dotCooCoo/fix/graph-data-utf16-no-bom
...
Graphs: Import Data reads UTF-16 text files without a byte-order mark
2026-11-15 03:21:22 +07:00
BFlat
2986979149
Merge pull request #7432 from dotCooCoo/fix/wireframe-transform-measures-shadow
...
3D: Expand as Wireframes measures later effects with the cast shadow
2026-11-15 03:21:13 +07:00
BFlat
6ee761e327
Merge pull request #7639 from dotCooCoo/feat/global-edit-rotated-copies
...
Global Edit: rotated copies are matched and take each edit turned by their angle
2026-11-15 03:21:03 +07:00
BFlat
bac95f9902
Merge pull request #7631 from dotCooCoo/fix/composite-font-lent-document-only
...
Type: a document draws only its own composite font definitions
2026-11-15 03:20:55 +07:00
BFlat
e8a65c97ef
Merge pull request #7409 from dotCooCoo/fix/rtl-tab-end-trim
...
Type: right-to-left tabbed lines are measured with their line-end trim where it is drawn
2026-11-15 03:20:46 +07:00
BFlat
3a76cd89ac
Merge pull request #7620 from dotCooCoo/fix/live-paint-info-every-row
...
MCP: livePaint.info lists every appearance row of a face or edge
2026-11-15 03:20:38 +07:00
BFlat
2d9793d6f1
Merge pull request #7637 from dotCooCoo/perf/remove-breaks-thread-frames-once
...
Remove Breaks: a partly selected story's frames are gone through once
2026-11-15 03:20:29 +07:00
BFlat
ab913e84ad
Merge pull request #7628 from dotCooCoo/fix/clipping-members-drawn-budget
...
Effects: a clipping path's members count toward the member limit of a group's effects
2026-11-15 03:20:21 +07:00
BFlat
46a7dd24f6
Merge pull request #7646 from dotCooCoo/fix/nine-slice-symbol-lookups
...
Symbols: measuring and picking in 9-slice instances reuse one set of symbol boxes
2026-11-15 03:20:12 +07:00
BFlat
2eb5894748
Merge pull request #7619 from dotCooCoo/fix/learn-reset-progress-doc
...
Docs: only learn.markStep checks a tutorial id, not learn.resetProgress
2026-11-15 03:20:03 +07:00
BFlat
e9aea2bfea
Merge pull request #7612 from dotCooCoo/perf/trace-quantize-parallel
...
Image Trace: finding and settling blend pixels runs on all cores
2026-11-15 03:19:55 +07:00
BFlat
013ee019e3
Merge pull request #7607 from dotCooCoo/fix/paste-copied-file-size-limit
...
Paste: a copied file over 64 MiB is skipped before it is read
2026-11-15 03:19:47 +07:00
BFlat
c6c06b2c68
Merge pull request #7442 from dotCooCoo/fix/eps-ryumin-light-h
...
EPS import: Ryumin-Light-H and GothicBBB-Medium-V read as Japanese type without their CIDFont
2026-11-15 03:19:37 +07:00
BFlat
280cc9a488
Merge pull request #7455 from dotCooCoo/fix/followup-7303
...
Area type: contours whose crossings round to one x keep the gap between them
2026-11-15 03:19:29 +07:00
BFlat
19db13cfac
Merge pull request #7611 from dotCooCoo/perf/flatten-held-guides-one-walk
...
Flatten: held ruler guides are gathered in one walk
2026-11-15 03:19:16 +07:00
BFlat
a33a296ccc
Merge pull request #7530 from dotCooCoo/fix/vi-missing-message-rows
...
i18n: Vietnamese translates 115 status and error messages it lacked
2026-11-15 03:19:06 +07:00
BFlat
8b351d475b
Merge pull request #7613 from dotCooCoo/docs/localization-indonesian-bosnian
...
Docs: the localization page lists Indonesian once and marks Bosnian by what it translates
2026-11-15 03:18:47 +07:00
BFlat
eb6f230d1a
Merge pull request #7453 from datatimp/fix/7340-guide-row-clicks
...
Layers: a plain click on another row lets go of the selected guide (#…
2026-11-15 03:18:36 +07:00
dotCooCoo
df257c2d53
Merge main into fix/svg-raster-keeps-resolution
2026-11-14 12:12:06 -08:00
dotCooCoo
0d4d24386e
Merge main into fix/eps-cshow-composite-codes
2026-11-14 12:11:59 -08:00
BFlat
14f12130e7
Merge pull request #7656 from storytold/revert/7638
...
Revert #7638 (craft-libs codec cutover) to get main green
2026-11-15 03:09:07 +07:00
dotCooCoo
a512bf5ce6
Image resolution: a WebP chunk length past the end of the file reads no resolution
...
The WebP chunk walk added the chunk length to the offset without a
checked add, so a length near u32::MAX overflowed on 32-bit targets
(wasm32) with overflow checks on. It now reads the chunk through the
same checked slice helper as the PNG, JPEG and TIFF readers.
2026-11-14 11:37:16 -08:00
bflatastic
79572cbf6c
Revert "Cut over roxmltree, png, tiff, psd, and trace codecs to craft-libs ( #7638 )"
...
This reverts commit bada8e1710 . #7638 merged with its gate failing: besides six unformatted
files, render and trace don't compile against craft-libs e2dc681 (u64::from(usize) in
render/src/paint.rs, a private craft-libs function, and a call with one argument too many in
trace/src/opaque.rs), so main's CI fails. The tree is that of 0adbdce6cb , whose CI passed.
2026-11-15 02:26:07 +07:00
dotCooCoo
b374d1f2c0
EPS import: cshow over a descendant without a matrix sees it at its drawn scale
...
When a Type 2 CIDFont or a Type 42 descendant of a composite font has no FontMatrix, the
font a cshow procedure sees as current now takes the identity as its default, as glyph
measuring and drawing do, instead of the 1/1000 default of other fonts.
2026-11-14 11:03:23 -08:00
Dylan M. Taylor
bada8e1710
Cut over roxmltree, png, tiff, psd, and trace codecs to craft-libs ( #7638 )
2026-11-14 13:49:50 -05:00
datatimp
8d3f8d1ce5
Merge branch 'main' of https://github.com/storytold/vectorcraft into fix/7340-guide-row-clicks
2026-11-14 13:36:34 -05:00
dotCooCoo
576660020e
Merge main into fix/later-span-taller-line-clears
2026-11-14 10:34:32 -08:00
dotCooCoo
3534dd7343
Symbols: measuring and picking in 9-slice instances reuse one set of symbol boxes
...
Measuring an instance of a symbol with 9-slice guides looked its map up
through Document::symbol_slice_map, which scanned the symbol list and
measured the art box again in new quick boxes, and NineSliceMap::place
and most_placed made new quick boxes of their own. Each of those boxes
built the symbol name index over the whole list on its first lookup, so
every 9-slice instance measured read every symbol once or more. Picking
an object inside a 9-slice instance's art with Direct Selection did the
same for each object of the art that holds a symbol instance.
- SymbolBoxes cuts the guides through the art box it has measured
(SymbolBoxes::slice_map), and places and counts the art with itself as
the boxes, in the mode quick boxes use. Art with no 9-slice map is
moved by the instance's transform without looking the map up again.
- Document::symbol_slice_map, place_symbol_art,
place_symbol_art_unclipped and edited_nine_slice use one set of quick
boxes for each call.
- symbol_part_at and symbol_part_outline keep one set of quick boxes
for the instance's art.
The new tests count the symbols read. Measuring 200 instances of a
symbol with guides and 200 of a symbol with guides holding it, among
2,002 symbols, read 1,205,204 symbols before; now each set of boxes
reads the list once. Picking in a 9-slice instance whose art holds 20
instances read 84,042 symbols among 2,001; now it reads the list at
most twice.
2026-11-14 10:32:20 -08:00
dotCooCoo
b12d4794a0
Merge main into fix/eps-cshow-composite-codes
2026-11-14 10:29:48 -08:00
BFlat
0adbdce6cb
Merge pull request #7621 from ruchirguitar/feat/symbols-item-context-menu
2026-11-15 01:14:51 +07:00
dotCooCoo
66f989c27b
Effects: the member limit's doc comment says a compound path with fill or stroke effects becomes a group of pieces
2026-11-14 10:09:26 -08:00
dotCooCoo
7cbbf97b74
Merge main into fix/pdf-art-bounds-printing-layers
2026-11-14 10:03:22 -08:00