Commit Graph
4459 Commits
Author SHA1 Message Date
BFlat 0e78bfa60c Merge pull request #7580 from dotCooCoo/fix/create-outlines-gradient-layout-bounds
Type: Create Outlines keeps a run's gradient across the whole text
2026-11-15 05:30:22 +07:00
BFlat ada5c74c47 Merge pull request #7203 from dotCooCoo/fix/file-folder-param-classification
Automation: one classification of file and folder params
2026-11-15 05:30:12 +07:00
BFlat 9153900b1f Merge pull request #7322 from dotCooCoo/fix/graph-series-group-opacity
Graphs: the transparency set on a series group is kept
2026-11-15 05:30:04 +07:00
BFlat 35bf3a7412 Merge pull request #7625 from dotCooCoo/fix/shape-builder-open-path-drawn-fill
Shape Builder: an open path counts as filled by the fill rows that draw
2026-11-15 05:29:46 +07:00
BFlat 2986ddb104 Merge pull request #7462 from dotCooCoo/fix/convert-to-text-locked-frames
Type: Convert to Text and Remove Breaks on a selected story include its locked and hidden frames
2026-11-15 05:29:38 +07:00
BFlat d68b7f3990 Merge pull request #7670 from dotCooCoo/feat/open-pdf-pages-as-links
Import PDF: Import PDF pages as links opens each page linked to its file
2026-11-15 05:29:21 +07:00
BFlat dcd6e69e83 Merge pull request #7610 from dotCooCoo/fix/text-wrap-offset-refused
Text wrap: an out-of-range or non-number offset is refused
2026-11-15 05:29:05 +07:00
BFlat 15ae607c63 Merge pull request #7667 from dotCooCoo/feat/links-sort-by-size
Links: Sort by Size in the panel menu lists the smallest file first
2026-11-15 05:27:12 +07:00
BFlat bb59d1c711 Merge pull request #7657 from dotCooCoo/feat/asset-export-panel-menu-options
Asset Export: Create Sub-folders, Open Location after Export and Format Settings in the panel menu
2026-11-15 04:23:01 +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 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
dotCooCoo ec5472f726 Merge main into fix/shape-builder-open-path-drawn-fill 2026-11-14 12:38:20 -08:00
dotCooCoo c7fa644f2f Merge main into fix/text-wrap-offset-refused 2026-11-14 12:30:12 -08:00
dotCooCoo c7c9e7f4db Merge main into fix/graph-series-group-opacity 2026-11-14 12:29:26 -08:00
dotCooCoo 71c45ffd82 Merge main into fix/convert-to-text-locked-frames 2026-11-14 12:28:42 -08:00
dotCooCoo c10b1b3933 Merge main into feat/arrange-nest 2026-11-14 12:28:19 -08:00
dotCooCoo 98fbda2eb1 Merge main into fix/create-outlines-gradient-layout-bounds 2026-11-14 12:28:14 -08:00
dotCooCoo 6068c42ce6 Merge main into feat/open-pdf-pages-as-links 2026-11-14 12:23:47 -08: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 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 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 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
dotCooCoo 35ab0ee859 Merge main into fix/file-folder-param-classification 2026-11-14 12:17:54 -08:00
dotCooCoo dab13fbf14 Import PDF: Import PDF pages as links opens each page linked to its file
File › Open's Import PDF dialog gets Import PDF pages as links. With it on,
each page picked opens as a placed document linked to that page of the
file, on an artboard of its Crop To box and a layer named after the page,
in place of editable art. The Links panel lists each page, and Embed makes
a page editable.

document.open takes the matching linkPages param. It is refused for a
file that is not a PDF or a PDF-compatible .ai, for bytes without a path,
with a password and with textAs: outlines. The pages share one copy of
the file, and the document opens in CMYK when most of its pages do.
Save asks for a name, as for other partly read PDFs.
2026-11-14 12:13:59 -08:00
dotCooCoo b7748581d5 Merge main into feat/asset-export-panel-menu-options 2026-11-14 12:12:44 -08:00
dotCooCoo df257c2d53 Merge main into fix/svg-raster-keeps-resolution 2026-11-14 12:12:06 -08:00
dotCooCoo ebc82ca0d5 Links: Sort by Size in the panel menu lists the smallest file first
The Links panel menu gets Sort by Size beside Sort by Name, Kind and
Status, and links.list takes sort: "size". A row's size is the file size
Link Info shows: the file's size now, else the size the document keeps
of it. Rows without a size (embedded images, a missing file whose size
is not kept) come last, and equal sizes go by name. The size is read
only when sorting by it, and under automation read roots a file outside
them is not read.

Every catalog with Sort by Status gets a Sort by Size row; the Ukrainian
Sort by Status row, which read "Sort by:", now says "Sort by Status".
2026-11-14 11:43:39 -08:00
dotCooCoo a19646b2f3 Asset Export: Create Sub-folders, Open Location after Export and Format Settings in the panel menu
Create Sub-folders and Open Location after Export are check items that set
the settings the panel shares with Export for Screens, and the panel's
Export follows them. Create Sub-folders is checked as the dialog opens on
it: on for a document without export settings, and on for remembered
folders per row, format or item, which the panel's Export now uses too.
Format Settings... opens Export for Screens on the Assets tab showing the
first row's format settings.

assets.settings.set takes openLocation (kept in document.exportSettings,
not in presets), refuses a subfolders or openLocation value that is not
true, false or null, and with subfolders false given alone also ends a
remembered folder per format or item. Export for Screens reads remembered
empty folders as none, as an export does.
2026-11-14 11:26:20 -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 f0c920fa8e Shape Builder: leave out Live Paint faces and edges with an opacity of 0
A visible, unlocked Live Paint face or edge whose own opacity is 0 draws
nothing, as Expand and the edge stroke check already treat it, but the
Shape Builder still took it as an input. It now leaves such faces and
edges out; hidden and locked parts keep their current handling.
2026-11-14 11:15:41 -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
dotCooCoo 924aa258d0 Merge main into fix/shape-builder-open-path-drawn-fill 2026-11-14 10:29:06 -08:00
dotCooCoo 7cbbf97b74 Merge main into fix/pdf-art-bounds-printing-layers 2026-11-14 10:03:22 -08:00
dotCooCoo 7ff186bd31 Type: a selected character's alternate glyphs show beside it on the canvas
With a Type tool and exactly one character selected, the canvas shows up
to five of that character's alternate glyphs in a row beside it. A click
runs the command the Glyphs panel's double-click runs, as one undo step;
an arrow at the end opens the Glyphs panel on Alternates for Current
Selection when the character has more. Preferences > Type > Show
Character Alternates (showCharacterAlternates, on by default) turns the
row off.
2026-11-14 10:00:04 -08:00
dotCooCoo 951f689e8f Export: an HP-GL plot of the art's bounds measures images by the art their effects add
An image or a gradient mesh with a visible Crop Marks effect, or with a
Vector Halftone effect that makes dots, is measured in a plot of the art's
bounds. A halftone that makes no dots, such as one past the effect's cell
limit, leaves the image out as before.
2026-11-14 09:59:27 -08:00
dotCooCoo 7e84899786 Merge main into fix/graph-series-group-opacity 2026-11-14 09:52:39 -08:00
dotCooCoo 283c13dfd8 Merge main into fix/type-no-op-undo-more 2026-11-14 09:49:48 -08:00
dotCooCoo 769d14ee7a Merge main into feat/arrange-nest 2026-11-14 09:47:03 -08:00
dotCooCoo b554fc3b10 Merge main into perf/flatten-held-guides-one-walk 2026-11-14 09:45:47 -08:00
dotCooCoo f43d16268a Global Edit: rotated copies are matched and take each edit turned by their angle
Select > Start Global Edit now also takes rotated copies of the selected
object or group, in the highlights before the start, in the Global Edit
Options' Results count and in the started edit. An edit reaches each copy
turned by that copy's angle, so an anchor moved to the right on the
selected object moves downward on a copy turned a quarter turn clockwise.

The copy's angle is the one that lays the selected object's anchors and
handles on the copy's in order (a least-squares fit in the unit box),
and the copy is the same shape when each point then lies within a
millionth of the larger side of the copy's box. Reflected copies and
copies stretched along one direction stay unmatched. With Size, a rotated
copy matches when it is the object rotated without scaling. The no-match
message now names only reflected copies, in every catalog that has it.

Docs: docs/mcp.md, docs/gaps.md, docs/ui-parity.md and the evidence list
in docs/target-app-parity.md.
2026-11-14 09:43:51 -08:00
dotCooCoo c51d14262f Merge main into fix/composite-font-lent-document-only 2026-11-14 09:42:51 -08:00
dotCooCoo a49dd999f5 Merge main into fix/convert-to-text-locked-frames 2026-11-14 09:42:27 -08:00