Commit Graph
5748 Commits
Author SHA1 Message Date
BFlat f90f65736b Merge pull request #7253 from ncic/pencil-no-guides
Pencil: ignores Smart Guides and Snap to Point
2026-11-15 05:26:52 +07:00
dotCooCoo 7293cdf1fe Links: the panel menu's Copy Info copies the selected links' file names
The Links panel menu gets Copy Info, which runs the new UI command
links.copyInfo {ids?}: the file names of the selected rows (or of ids),
one per line in the order the panel shows them, go to the clipboard.
The item is off with no row selected. An id that is not an image or a
placed document, or a malformed ids, is an error and leaves the
clipboard as it was.
2026-11-14 13:51:22 -08:00
dotCooCoo 7a54b21579 Merge main into fix/issue-7275-rename 2026-11-14 13:51:13 -08:00
dotCooCoo 09c6d5dcf1 Fix #7275: a typed artboard name follows its artboard
The rename field in Export for Screens tracked the artboard by its index. If the
artboards changed order while a name was typed (a command from the control channel
or MCP), Enter renamed the artboard that had moved into that index. The field now
tracks the artboard by its id and by the document it was opened in. When that
artboard is deleted, or another document becomes active, while its name is typed,
the field closes, no artboard is renamed, and Escape closes the dialog again.
2026-11-14 13:50:32 -08:00
dotCooCoo aec1e2597d Merge main into feat/live-paint-bucket-multi-click 2026-11-14 13:49:49 -08:00
dotCooCoo 343d4a69e2 Merge main into fix/monitor-profile-after-blending 2026-11-14 13:48:09 -08:00
dotCooCoo dfc4db7a9b Docs: Japanese messages are listed as partial, with the report's count
The Japanese row in docs/localization-parity.md said every message is
translated, and the Japanese catalog line in docs/target-app-parity.md
said 38 messages were missing, one of them waiting on #7214, which has
merged. On main the untranslated report lists 98 messages without a
Japanese row, 77 of which every complete-message language lacks. Both
lines now give the counted rows and the report's count, and name the
open pull requests that translate part of them.
2026-11-14 13:47:36 -08:00
dotCooCoo a5868102ae Merge main into feat/radial-blur-center 2026-11-14 13:47:19 -08:00
dotCooCoo f1cffdd8c0 Type: a warichu line holds the ascent and descent of its outer block lines
A block's line took the tallest ascent and deepest descent of its
characters, or the height of the stack's em boxes, whichever was larger.
The top block line's characters reach above the stack by their ascent
past the em box, and the bottom line's below it by their descent, so with
a wide Line Gap the line was too short for them. The line's ascent and
descent now also take in each character's reach from its own block line's
baseline.
2026-11-14 13:46:56 -08:00
dotCooCoo b12c78a731 Graphs: Outline Stroke and a graph left with only labels keep the plot in place
- Outline Stroke on a graph's strokes, including Object > Expand with
  Stroke on, adjusts the bounds the graph keeps, the same way
  Create Outlines on its labels does. Before, the stroke outlines
  changed the bounds of the art without type, and the next redraw
  stretched the plot by the width the outlines added.
- A graph that keeps `placedArt` and has no art other than type left
  is no longer measured on the bounds of all its art. A label edit on
  such a graph moved and stretched the plot at the next redraw; the
  plot now stays where it is.
- A redraw no longer measures a move or scale on art that has no width
  or no height now, such as a graph left with one axis line. Before,
  the plot collapsed to no width.
- A clipping group in a graph that holds type is measured on its clip
  when the clip does not depend on type, so moving art outside the clip
  does not change the bounds. Blends, envelopes and repeats are
  measured whole, as they are drawn.
- The doc crate's helper is named `graph_art_without_type` and sits
  with the file's other free functions.
- docs/mcp.md lists Outline Stroke and states that moving an outlined
  label, a swatch, an axis or a tick mark on its own can move or scale
  the plot, and that a graph left with only labels, or with art that
  has no width or height, does not follow a move.
- Tests: a scale of the graph made before outlining a label, a move of
  a graph opened from `.ai` after its label is restyled and moved,
  Outline Stroke after a move, a graph left with only its labels or
  with one line, and clipping groups holding type.
2026-11-14 13:45:46 -08:00
dotCooCoo 4184ab0f93 Merge main into fix/hindi-label-senses 2026-11-14 13:42:46 -08:00
dotCooCoo 5831b1d23a Effects: Radial Blur turns about a Blur Center set in its dialog
Effect > Blur > Radial Blur... has a Blur Center box. A press or a drag
in the box sets the point the spin or zoom starts from, the arrow keys
move it 1% (10% with Shift), and Horizontal and Vertical fields take the
same position in percent. Screen readers get the box with both values.

- blur.radial takes centerX and centerY, from 0 to 1 across and down the
  object's bounds (0.5 each by default), so the center moves and scales
  with the object. An effect saved without them draws as before.
- effect.apply and effect.setParams refuse a value outside 0 to 1, or
  one that is not a number; a saved one draws at the nearest edge.
- The raster's margin is measured from the center, and the center stays
  in the object's own bounds when a Rasterize splits the stack.
- Params text, docs/mcp.md, the evidence line in
  docs/target-app-parity.md and a Blur Center row in every catalog.
2026-11-14 13:39:57 -08:00
dotCooCoo 55615be12c Export: an HP-GL plot of the art's bounds leaves out images in dynamic symbols
A plot of the art's bounds now leaves placed images, objects at 0%
opacity and unpainted paths out of the art of a dynamic symbol, as it
does for other symbols. An object that an instance's fill, stroke or
opacity makes the plot draw is measured for that instance only, and an
instance whose symbol holds nothing else is left out, so a document
with only such instances is refused.
2026-11-14 13:34:13 -08:00
dotCooCoo f4a5d65f6b Type: Glyphs panel menu draws the selected characters in an East Asian glyph form
With Show East Asian Options on, the Glyphs panel menu lists Traditional
Forms, Expert Forms, JIS 04, JIS 90, JIS 78 and JIS 83 Forms, Monospaced
Full-Width, Half-Width, Third-Width and Quarter-Width Forms, and Revert
To Default Forms. Each form draws the selected characters with the
font's OpenType feature for it (trad, expt, jp04, jp90, jp78, jp83,
fwid, hwid, twid or qwid). A form is checked when every selected
character has it and disabled when none of the faces that draw the
selected text, fallback faces included, has the feature.

The form is a new character attribute, glyphForm, one form at a time
(text.setFormat, text.setRangeStyle). It is saved only when set,
character styles carry it, and runs that differ only in their form
shape as one piece of text. SVG writes it in font-feature-settings;
PDF draws the glyphs from the layout.
2026-11-14 13:29:30 -08:00
dotCooCoo 056083e824 Merge main into fix/export-selection-doc-save-panel 2026-11-14 13:27:57 -08:00
dotCooCoo 9120268b7e Merge main into fix/tr-message-rows 2026-11-14 13:27:33 -08:00
dotCooCoo c5649c7529 Merge main into feat/variable-library-every-kind 2026-11-14 13:25:37 -08:00
BFlat 9ddbf25bef Merge pull request #7553 from dotCooCoo/feat/da-complete-messages
i18n: Danish translates status and error messages
2026-11-15 04:23:09 +07:00
dotCooCoo e90c4e6fb2 Variables: Load and Save Variable Library hold visibility, image and graph variables
Load Variable Library defines each variable with the kind of its trait
(textcontent, visibility, fileref, graphdata; any other or none is the
unknown kind) and reads visibility values from true or false, image
values from a file's absolute path or file: URL, and graph values from
a data element of series names and rows. A document variable declared
with the same name and kind keeps its bindings. Save Variable Library
writes every kind in the same forms and is enabled with any variable.
Image values that aren't absolute paths and graph data past what a
graph holds are refused, so every saved file loads back.
2026-11-14 13:23:02 -08: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 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
dotCooCoo 3781af2b8d MCP: docs say document.exportSelection with options and no path still asks for the file
An option given to document.exportSelection skips the options dialog, but
without `path` the save panel still picks the file. docs/mcp.md said any
option writes without a dialog, and docs/control-protocol.md said params
export without the dialog. Both now say that only `path` writes without a
dialog, and a test pins the behavior.
2026-11-14 13:20:41 -08:00
dotCooCoo 09110ce7bf Live Paint: Merge fits a carried edge look to the piece it lands on
When Merge added a path that cut a painted edge, the piece holding the
old edge's middle took the old edge's stroke rows unchanged, so its
dashes started again and it kept both arrowheads. It now takes them
fitted to its part of the old edge, as Gap Options does.
2026-11-14 13:15:07 -08:00
dotCooCoo 0e6e7df695 Merge main into feat/live-paint-bucket-multi-click 2026-11-14 13:02:52 -08:00
ncic d3213cf5b2 Merge remote-tracking branch 'upstream/main' into pencil-no-guides 2026-11-14 22:02:14 +01:00
dotCooCoo cf8b88b0ea Merge main into fix/clip-effects-hit-test 2026-11-14 12:59:50 -08:00
dotCooCoo 8e6c948010 PDF export: a JPEG written without its profile keeps its JPEG data
In PDF/X-1a, a tagged gray JPEG that the Compression settings keep as
JPEG was decoded and written with Flate. It is now written with its
JPEG data unchanged, in DeviceGray without its profile.

A PNG or JPEG embedded as it is now has its gray or RGB profile checked
with valid_icc, like the images the recoder writes: a malformed profile
is left out, the JPEG keeping its JPEG data and the PNG decoded.
2026-11-14 12:56:47 -08:00
dotCooCoo 44f8c41a15 Merge main into feat/trace-preset-defaults 2026-11-14 12:48:25 -08:00
dotCooCoo 635491c3d8 Merge main into fix/trace-clean-gray-photo-tone 2026-11-14 12:43:08 -08:00
makesomethingshit a05dca2e9d Fix #7275: Commit artboard names when switching export tabs 2026-11-14 12:39:11 -08:00
makesomethingshit 9334dfd8d7 Fix #7275: Rename artboards in Export for Screens 2026-11-14 12:39:11 -08:00
dotCooCoo ec5472f726 Merge main into fix/shape-builder-open-path-drawn-fill 2026-11-14 12:38:20 -08:00
dotCooCoo c0d9c76ecd Live Paint: a triple-click matches what its double-click reached
When the third click of a triple-click landed on a face or edge that
the double-click before it had painted (a neighbor the flood or the edge
walk reached), the triple-click sent that part's new paint as match,
since only the clicked part's paint was recorded. The bucket now records
the fill or drawn stroke paint of every other part a double-click
reaches, and a triple-click on one of them matches the paint it had
before the double-click. docs/mcp.md says so.
2026-11-14 12:32:02 -08:00
dotCooCoo 65441c623a Merge main into fix/opentype-ligature-note-every-frame 2026-11-14 12:31:32 -08:00
dotCooCoo bf0950c0ef Merge main into fix/3d-shadow-builds-once 2026-11-14 12:30:56 -08:00
dotCooCoo 71b7414af9 Merge main into feat/ai-insert-aki 2026-11-14 12:30:41 -08:00
dotCooCoo c7fa644f2f Merge main into fix/text-wrap-offset-refused 2026-11-14 12:30:12 -08:00
dotCooCoo 4ee24a8bbe Merge main into fix/export-cull-brushed-path-art 2026-11-14 12:29:41 -08:00
dotCooCoo c7c9e7f4db Merge main into fix/graph-series-group-opacity 2026-11-14 12:29:26 -08:00
dotCooCoo 81ec6498dc Merge main into fix/blend-reversed-key-stroke-direction 2026-11-14 12:28:54 -08:00
dotCooCoo ed3c5a1a4e Merge main into fix/emfplus-import 2026-11-14 12:28:49 -08:00
dotCooCoo 71c45ffd82 Merge main into fix/convert-to-text-locked-frames 2026-11-14 12:28:42 -08:00
dotCooCoo ece1ed1980 Merge main into fix/tr-message-rows 2026-11-14 12:28:25 -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 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