Commit Graph
12259 Commits
Author SHA1 Message Date
dotCooCoo fdedff519e Graphs: centered labels with an empty middle line stay centered
A centered label such as Q||1 has no baseline for its empty middle
line, so a label that keeps more leading was not moved back to its
place. The graph now centers a label whose first and last lines hold
characters, whatever the lines between them hold.
2026-11-11 02:43:45 -08:00
jmvergesandClaude Opus 5.5 112fe53d88 .ai import: an envelope in Edit Contents opens on its drawn art when its mesh lies away by a move (#6570)
While an envelope's contents are edited, the editing data keeps its mesh
in the envelope's dictionary. In some users' files that mesh lies away
from the drawn art by a plain move, the contents sitting with the drawn
art, as if the mesh hadn't followed the envelope when it moved. The
envelope then drew its contents elsewhere, failed the drawn-art check
and kept its drawn art. Nothing in the dictionary records the move, and
no envelope saved outside Edit Contents was found displaced.

A mesh or top object saved in Edit Contents (and a warp of type tried
on its saved grid) whose mesh draws the contents as large as the drawn
art, within half a point over width and height together, but further
from it than that, is now tried again after every other way, with one
more of the import's checks, its mesh moved by as far as the drawn
art's box lies from the box of what it draws. The drawn-art check, the
budget and the page comparison decide as before, so an envelope that
opened live before opens the same way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 10:39:39 +00:00
Davit Matchakhelidze 01cd72d7c7 i18n(ka): update the Georgian catalog 2026-11-11 14:38:53 +04:00
dotCooCoo 085af4f2e8 Merge main into fix/command-sweep-path-params 2026-11-11 02:38:44 -08:00
Taha-Mahmoodi 2da4f7a569 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 15:08:14 +04:30
dotCooCoo 2b378689d1 Tests: the command sweep sends file and folder params only into its temp folder
The tool-edit sweep sent `{"<key>": "on"}` for every documented key, so
`prefs.export` wrote a preferences file named `on` into crates/engine on
every run, and `folder`, `destinationFolder` and `diffPath` strings from
`junk_params` named locations under the working directory.

- `is_path_key` covers `path`, `diffPath`, `folder` and
  `destinationFolder`; `safe_value` sends a temp file for a file key and
  a temp folder for a folder key, and both sweeps use it.
- A new test builds both sweeps' cases for every command and fails when
  a string under one of those keys is outside the temp folder, without
  running any command.
2026-11-11 02:38:07 -08:00
BFlat 6244ac54bf Merge pull request #6560 from dotCooCoo/fix/pasted-svg-filter-names
Effects: pasted art keeps an SVG filter whose name the document gives another filter
2026-11-11 17:37:26 +07:00
BFlat 81bfed87d4 Merge pull request #6561 from dotCooCoo/fix/graph-labels-keep-paragraph-settings
Graphs: labels keep their paragraph settings and anti-aliasing when the graph is drawn again
2026-11-11 17:37:16 +07:00
dotCooCoo 0e4010d26b Merge main into feat/script-dollar-object 2026-11-11 02:35:43 -08:00
Taha-Mahmoodi c9567949d1 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 15:04:00 +04:30
dotCooCoo 1da6e899d3 Merge main into feat/script-strict-on 2026-11-11 02:33:33 -08:00
BFlat 00e078c861 Merge pull request #6558 from dotCooCoo/fix/control-bar-paragraph-doc-width
Docs: the Control bar's Paragraph alignment buttons are pinned at 1536 pt
2026-11-11 17:32:22 +07:00
Taha-Mahmoodi bef19453bf Merge remote-tracking branch 'origin/main' into feat/glyph-alternates
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-11 15:01:35 +04:30
Taha-Mahmoodi 2a2add8af1 Merge remote-tracking branch 'origin/main' into fix/ruler-double-click-guide
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-11 15:01:34 +04:30
BFlat 6a2b5b9c06 Merge pull request #6459 from Messhias/feat/g5-style-lib-status-effects
G5: built-in Status Effects graphic style library
2026-11-11 17:30:34 +07:00
dotCooCoo 8b2ff77429 Plug-ins: a plug-in may call effect.deferredStatus but not effect.refreshDeferred
effect.deferredStatus only lists the document's deferred stages, so it joins reviewed::ALLOWED. effect.refreshDeferred runs plug-in effects again, so it joins reviewed::DENIED, which fixes every_command_is_reviewed.
2026-11-11 02:27:30 -08:00
dotCooCoo bca428e699 Merge main into fix/script-console-report-text 2026-11-11 02:26:40 -08:00
dotCooCoo c81ae88c85 Flatten Transparency: a long rasterized area is placed whole
The flattener limited an image's resolution only by its total pixels, while
the renderer draws at most 32,768 pixels a side. A long area, such as a narrow
see-through gradient strip down a 2 m banner at 1200 ppi, came back cut off
at that length and was placed as if whole, so the rest of the strip was lost
in Flatten Transparency and in PDF/X-1a, PDF/X-3 and PDF 1.3 exports. The
resolution is now also limited by the longest side, as raster effects are.
2026-11-11 02:23:59 -08:00
HassanKhan 03a7320a0c Document tabs: a middle-click closes the tab, as the × does (#6506) 2026-11-11 15:19:26 +05:00
Taha-Mahmoodi 472cb7b409 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 14:47:52 +04:30
dotCooCoo 3a44447aeb Docs: remove the duplicated G9 .ai sentence that says .ai editing data is not written
A merge left a second copy of the G9 `.ai`/EPS Missing bullet's opening inside the bullet. That copy says
writing the editing data is out of scope, while the same bullet and file-format-parity.md say a
PDF-compatible `.ai` carries an editing copy of the art. The bullet now has one copy, with the newer
brush wording that matches the 2026-11-05 entry above it.
2026-11-11 02:17:45 -08:00
BFlat 264ca9bf4e Merge pull request #6559 from dotCooCoo/fix/dimension-expand-keeps-live
Dimension tool: a dimension selected with its art stays live through Expand and Outline Stroke
2026-11-11 17:16:39 +07:00
Taha-Mahmoodi 0b1ad2488e Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 14:44:52 +04:30
BFlat 3d9686fb8e Merge pull request #6556 from dotCooCoo/fix/svg-text-clippath
SVG import: a clip path made of text clips by the text
2026-11-11 17:13:56 +07:00
BFlat 9a28264cfe Merge pull request #6557 from dotCooCoo/feat/script-alert-confirm-prompt
Scripts: alert, confirm and prompt open dialogs with Stop, and headless runs take their answers from script.run
2026-11-11 17:13:46 +07:00
dotCooCoo 16cc5c107c Docs: a row without paint leaves the series' stored paint, not its opacity
The graph still stores an opacity or blend mode set on a series mark's row
that has no paint, as it does for transparency.set. The sentence now says
that such a row leaves only the stored paint unchanged.
2026-11-11 02:09:08 -08:00
dotCooCoo 08eca05731 Scripts: #strict on runs the script with strict write checks instead of refusing it
`#strict on` and `//@strict on` no longer end the run as unsupported. They
turn on the checks the dollar-object help page gives for `$.strict`
(https://extendscript.docsforadobe.dev/extendscript-tools-features/dollar-object/):
an assignment to a read-only property throws a TypeError, and so does a new
property on an object that takes none.

VectorCraft's own rules: a getter-only property counts as read-only; the
objects that take no new properties are the non-extensible ones
(preventExtensions, seal, freeze, and the frozen vc and $ objects); the last
`#strict` line of the script and its includes sets the whole run, and runs
without one are unchanged; eval and Function take the checks of the code
that compiles them; a file $.evalFile runs keeps its own line's checks for
its code and functions, or takes the caller's without one. The rest of ES5
strict mode stays with 'use strict'.

The js crate carries the setting per compiled source
(Realm::set_strict_writes, and a strict_writes callback on
HostItem::Evaluator), and applies it only to property assignments.
2026-11-11 02:04:49 -08:00
dotCooCoo 179bd81566 Scripts: the $ object's other members, localize and toSource
A script's $ object now has the other members the Dollar object page
lists: about, appEncoding, bp, build, buildDate, colorPicker,
decimalPoint, engineName, error, flags, gc, getenv, setenv, global,
hiresTimer, level, line, locale, localize, memCache, os, screens, sleep,
stack, strict and version. Scripts also get the global
localize(object, ...values), toSource(value) and
Object.prototype.toSource().

Each run starts with the interface's locale and its own $ state;
$.setenv changes only the run's copy of LANG, LC_MESSAGES, LC_ALL and
OS, and $.getenv returns null for every other name. $.sleep waits from
0 to 1,000 ms between frames, and script.stop ends the wait. toSource
writes plain data only and throws on cycles, getters, host objects and
values past the data limits.

The script checker reports $.localize as a $ member instead of the
global localize function.
2026-11-11 01:59:37 -08:00
dotCooCoo 67462cf049 Glyphs: gid null inside a ligature reports the ligature
When text.setGlyphAlternate leaves the text unchanged, it now reads
the glyph from the unchanged text. A character after the first in a run
that holds a glyph choice could be reported with its own glyph instead
of the ligature drawn for it, which text.glyphAlternates reports.
2026-11-11 01:54:02 -08:00
Taha-Mahmoodi 38707de39b Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 14:18:30 +04:30
Taha-Mahmoodi cfab2368f1 Merge remote-tracking branch 'origin/main' into fix/ruler-double-click-guide 2026-11-11 14:18:29 +04:30
BFlat e1c199a184 Merge pull request #6552 from dotCooCoo/docs/dynamic-symbols-edit-symbol-keeps-links
Docs: the Dynamic symbols entry says Edit Symbol keeps instances linked
2026-11-11 16:48:07 +07:00
BFlat d56ec4830d Merge pull request #6554 from dotCooCoo/fix/set-glyph-alternate-drawn-gid
Glyphs: text.setGlyphAlternate with gid null reports the glyph drawn
2026-11-11 16:47:58 +07:00
Taha-Mahmoodi f0fd7f9512 Merge remote-tracking branch 'origin/main' into fix/import-document-title
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-11 14:14:24 +04:30
dotCooCoo 32e22cb442 Effects: pasted art keeps an SVG filter whose name the document gives another filter
Pasted art whose svg.filter effect named one of the document's SVG filters
but drew another definition kept that name, so editing or deleting the
document's filter rewrote the pasted art's filter. Paste now renames such
a filter to a free name ("Soft 2") when the art comes from another
document or from SVG, and takes the document's filter when the art is
pasted back into the document it was copied from. Symbols, patterns,
brushes and graphic styles on the clipboard follow the same rule.
2026-11-11 01:44:11 -08:00
dotCooCoo 0f13edaabe Graphs: centered labels with kept leading stay centered
Category labels beside an axis and labels in pie wedges are centered
on their place by the default leading. A multi-line label that keeps
more leading or paragraph spacing ran down from that place instead.
The graph now puts the middle of such a label's first and last
baselines on its place.
2026-11-11 01:40:36 -08:00
dotCooCoo 9b2410d5f9 Script Console: report lines match script.console, counts of one are singular, every run ends
- The panel's report line gives a run without a clock as "time
  unavailable", as script.console does, instead of "? ms", and shows the
  slowest commands after "slowest:" as script.console does.
- "1 host call", "1 earlier line dropped" and "1 line cut" take the
  singular in the panel and in script.console, and each catalog gives
  its language's plural forms. The dropped and cut counts choose their
  forms independently.
- A run whose state is gone still gets an end line: "stopped" when it is
  abandoned, "internal" when the next slice finds it missing. Neither
  adds a report line. The missing-run path in script_pump now also puts
  the session's state back, as script_abandon does, so the next run can
  start.
2026-11-11 01:38:31 -08:00
dotCooCoo bcdb908b47 Docs: the Control bar's Paragraph alignment buttons are pinned at 1536 pt
#6090 moved the pinned window width in
the_control_bar_shows_the_paragraph_alignment_of_the_selected_type from
1440 to 1536 pt, since the bar's right end now keeps room for the panel
menu button. The progress line still named 1440 pt.
2026-11-11 01:38:30 -08:00
Fabio William Conceição 3c44a8ad7c G5: built-in Status Effects graphic style library
Eight style libraries; MCP docs list Status Effects and catch up Symbol libraries with UI Frames and Map Markers.
2026-11-11 09:38:28 +00:00
Taha-Mahmoodi f5ed28f579 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 13:59:31 +04:30
Taha-Mahmoodi dff62d9934 Merge remote-tracking branch 'origin/main' into fix/ruler-double-click-guide 2026-11-11 13:59:31 +04:30
BFlat 6864cc0944 Merge pull request #6549 from dotCooCoo/fix/installed-script-includes
Scripts: a script chosen from File › Scripts reads its #include files and runs $.evalFile
2026-11-11 16:29:09 +07:00
BFlat 75e33a5467 Merge pull request #6553 from dotCooCoo/fix/task-bar-button-names
Contextual Task Bar: screen readers name the text buttons
2026-11-11 16:28:59 +07:00
dotCooCoo d13f7324f9 Dimension tool: a dimension selected with its art stays live through Expand and Outline Stroke
A dimension selected with the art it measures became a plain group of
paths and text when Object › Expand, Object › Expand Appearance or
Object › Path › Outline Stroke ran, so it no longer redrew when moved
or restyled.

These commands now leave such a dimension's lines and label as they
are, also inside selected groups without fills, strokes or effects of
their own, and change only the other art. The dimension keeps its
export assets and variable bindings. When the new art no longer fits
the dimension's link, for example because the outlined stroke has
other anchors, the dimension stays where it was, no longer linked, as
it does when its art is deleted. Undo links it again.

When the dimension is all the command would change, the command
changes nothing and reports the error it gives for a selection with
nothing to change. Object › Expand… is no longer dimmed for the label
of such a dimension. A dimension selected without the art it measures,
a part of one, and one inside a selected group with an appearance of
its own still become plain groups, and Type › Create Outlines still
outlines the label.

Docs: docs/dimensions.md, docs/mcp.md, docs/target-app-parity.md.
2026-11-11 01:26:12 -08:00
Taha-Mahmoodi 7667032588 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-11 13:44:04 +04:30
Taha-Mahmoodi ce99eb533a Merge remote-tracking branch 'origin/main' into fix/ruler-double-click-guide
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
#	docs/ui-parity.md
2026-11-11 13:44:04 +04:30
BFlat 4986f66fe2 Merge pull request #6442 from Messhias/feat/g5-symbol-lib-inventory-icons
G5: built-in Inventory Icons symbol library
2026-11-11 16:12:59 +07:00
Taha-Mahmoodi 97ee84744c Merge remote-tracking branch 'origin/main' into fix/import-document-title
# Conflicts:
#	docs/file-format-parity.md
2026-11-11 13:41:49 +04:30
dotCooCoo c0adc6e9d7 Merge main into feat/script-alert-confirm-prompt 2026-11-11 01:09:54 -08:00
Taha-Mahmoodi 253fb7637c Merge remote-tracking branch 'origin/main' into feat/glyph-alternates
# Conflicts:
#	docs/type-parity.md
2026-11-11 13:36:04 +04:30