Commit Graph
13734 Commits
Author SHA1 Message Date
BFlat 3ccafde99f Merge pull request #7466 from dotCooCoo/fix/ai-wrap-options-edge-cases
.ai save: text wrap fixes for cut-away clipping fills and symbols without room
2026-11-15 04:22:46 +07:00
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