Commit Graph
2686 Commits
Author SHA1 Message Date
BFlat f062dd7ed2 Merge pull request #6932 from dotCooCoo/feat/dcs-linked-spot-plates
Place: DCS files link with their spot plates as spot swatches and separate on their own inks
2026-11-13 11:27:13 +07:00
BFlat 465091d7d2 Merge pull request #7031 from dotCooCoo/fix/followup-6920
Print: notes of what a print loses come before notes on options
2026-11-13 11:26:54 +07:00
BFlat 5e17d47370 Merge pull request #7029 from dotCooCoo/fix/followup-6718
Pen: Space held during a closing drag moves the first anchor
2026-11-13 11:26:39 +07:00
BFlat e899f3fdb4 Merge pull request #6881 from dotCooCoo/feat/image-color-mask
Image Tools: Color Mask hides chosen colors of an image without changing its pixels
2026-11-13 10:27:04 +07:00
BFlat 563850dca0 Merge pull request #6988 from dotCooCoo/feat/control-bar-float
Control bar: dragging the gripper away from both docked edges floats the bar
2026-11-13 10:26:54 +07:00
BFlat fe9fd05a1a Merge pull request #7016 from dotCooCoo/fix/layers-right-drag
Layers: a drag with the right button no longer moves a row
2026-11-13 10:26:27 +07:00
BFlat 703fb03d65 Merge pull request #7006 from dotCooCoo/fix/mesh-locate-winding
Mesh: a point on a mesh's outline locates on its edge on every side
2026-11-13 10:26:18 +07:00
dotCooCoo 9c1c7dee7e Print: notes of what a print loses come before notes on options
A print to a file and the print preview list their notes as saves and
exports do since #6920: what the job leaves out of the document or prints
differently first (art outside the imageable area, type in a fallback
font, transparency flattened for PostScript), then the notes on the
options (halftone screens and a fixed flatness that aren't written, copies
per sheet that don't fit, a printer profile left out, ink options that
name no ink). Each kind keeps the order it is given in.

The print layout, the PDF print and the PDF print plan return the notes
on the options in `setting_notes` beside `warnings`, as `ExportReport`
does. The status message after a print to a file names the first note,
so a fixed flatness no longer hides type printed in a fallback font.
2026-11-12 19:13:13 -08:00
dotCooCoo f6d8af3ed6 Merge main into feat/dcs-linked-spot-plates 2026-11-12 19:09:51 -08:00
dotCooCoo 1587cb84f7 Pen: Space held during a closing drag moves the first anchor
Space held while dragging out a new anchor already moved it, handles and
all, but the closing drag skipped it, so the closing anchor could not be
repositioned. The closing drag now moves the first anchor by as far as the
pointer moves while Space is held, its handles with it, and the drag
shapes the handles round the new place once Space is released.

path.close takes `at: [x, y]`, which moves the first anchor, its handles
with it, before `in` and `out` are placed. docs/mcp.md and the Pen line
in docs/target-app-parity.md describe it.
2026-11-12 18:55:10 -08:00
Don Omondi 34798989bd Swatches list (#1638): M3 and area row notes 2026-11-12 21:45:37 -05:00
Don Omondi 9fdaf3d999 Merge remote-tracking branch 'upstream/main' into fix/swatches-list-height-1638
# Conflicts:
#	docs/target-app-parity.md
2026-11-12 21:45:37 -05:00
BFlat c94577e3bf Merge pull request #6946 from dotCooCoo/feat/actions-select-object
Actions: Select Object selects objects by their Attributes note during playback
2026-11-13 09:30:34 +07:00
BFlat 23cae99a84 Merge pull request #7011 from dotCooCoo/fix/expand-symbol-item-effects
Effects: a symbol instance's fill or stroke effects reshape its art and expand
2026-11-13 09:30:26 +07:00
BFlat cae4729426 Merge pull request #7005 from dotCooCoo/feat/context-menus-beyond-canvas
Artboards: a right-click on a panel row opens a menu with Rename
2026-11-13 09:30:15 +07:00
BFlat 34cc6fd47a Merge pull request #7004 from dotCooCoo/fix/schema-too-deep-bad-params
MCP: a parameter nested too deeply is refused as bad parameters, not as an internal error
2026-11-13 09:30:07 +07:00
BFlat 9c007ec416 Merge pull request #7009 from dotCooCoo/fix/3d-clip-image-outside-shape
3D: an image inside a clip's box but outside its shape is left out
2026-11-13 09:29:50 +07:00
BFlat 14c73e0052 Merge pull request #7014 from dotCooCoo/docs/drawing-readouts-ship
Docs: distance and angle labels while drawing are listed as shipped
2026-11-13 09:29:42 +07:00
BFlat d860886a95 Merge pull request #7013 from dotCooCoo/feat/curvature-modifiers
Curvature: Alt-click on an open end goes on from it, and starts a path with a corner
2026-11-13 09:29:34 +07:00
Don Omondi 914607a72c Swatches list (#1638): parity and roadmap revision rows 2026-11-12 20:52:15 -05:00
Sven Lafebre f04b9a0a2d Merge remote-tracking branch 'origin/main' into fix/6969-rasterize-gray
# Conflicts:
#	docs/target-app-parity.md
2026-11-13 02:40:43 +01:00
dotCooCoo df155042d4 Merge main into feat/image-color-mask 2026-11-12 17:40:13 -08:00
dotCooCoo 8e5360b7b1 Layers: only the primary button drags rows, guides, art, columns and appearances
A drag with the right or middle button on a Layers row could move or
copy the row, and the same drag on a guide row, the selected-art
square, the eye or lock column or a target circle moved the guide or
the art, swept visibility or locks, or transferred the appearance.
Each of these drags now starts only with the primary button, as the
Artboards panel's row drag does, and the grab cursor follows the
primary button too. A right-click still opens the row's menu.

The new test drags each of the six sources with the secondary and the
middle button, checks that no drag payload is held and that nothing in
the document or its undo steps changes, then drags the same path with
the primary button to show the drop target takes it.
2026-11-12 17:39:54 -08:00
dotCooCoo d3bef19990 Docs: distance and angle labels while drawing are listed as shipped
docs/ui-parity.md and docs/target-app-parity.md listed the distance and
angle readouts while drawing as missing. With Smart Guides > Measurement
Labels on, the Line Segment tool labels the segment being drawn with its
distance, angle and X and Y offsets, and the Pen, Curvature and Smart Pen
tools label their rubber band the same way (#2983). The Measurement
labels row is marked done, the two dimension rows drop the gap, and the
Drawing aids entry describes the labels.
2026-11-12 17:31:36 -08:00
BFlat 39f7d33e22 Merge pull request #6943 from dotCooCoo/feat/color-rgb-percent
Color: a double-click right of an RGB field switches between percent and 0 to 255
2026-11-13 08:31:01 +07:00
BFlat 45d25f6a34 Merge pull request #6997 from dotCooCoo/fix/filter-gradient-plates
Plug-ins: a filter's gradient stop plates are clamped into range like its other colors
2026-11-13 08:30:29 +07:00
BFlat 2716eab08e Merge pull request #6975 from dotCooCoo/fix/followup-6841
Document Info: Spot Color Objects leaves out fills and strokes at opacity 0
2026-11-13 08:30:19 +07:00
BFlat ae014cc896 Merge pull request #7002 from dotCooCoo/fix/3d-plain-fill-keeps-compound
3D: a fill or stroke without the effect keeps an even-odd path's holes
2026-11-13 08:29:49 +07:00
BFlat cae74519f2 Merge pull request #6998 from dotCooCoo/fix/i18n-script-messages
i18n: script errors and failed-run lines are translated in every complete-message catalog
2026-11-13 08:29:39 +07:00
BFlat b9a5476853 Merge pull request #6844 from jmverges/fix/6824-type-envelope-painted-box
.ai import: type in an envelope is also tried mapped from the box of what it paints
2026-11-13 08:29:17 +07:00
dotCooCoo 057db09c12 Curvature: Alt-click on an open end goes on from it, and starts a path with a corner
An Alt-click on an end of a selected open path makes that end the current
point without converting it, so the next click extends the path from it.
This applies to the other end too while one end is current; a plain click
there still closes the path. Alt-click on any other point still toggles it
between smooth and corner, and a double-click toggles any point, ends
included. An Alt-click that starts a new path places a corner point, as
later Alt-clicks do.

Changed behavior: an Alt-click on an end of a selected open path no longer
converts it; double-click converts it.

Help page: https://helpx.adobe.com/illustrator/desktop/draw-shapes-and-paths/draw-shapes/draw-shapes-with-the-curvature-tool.html
2026-11-12 17:23:58 -08:00
dotCooCoo e51685dc23 Effects: a symbol instance's fill or stroke effects reshape its art and expand
A geometry effect on a symbol instance's topmost fill now reshapes the
filled shapes of the symbol's art, and one on its topmost stroke reshapes
the stroked shapes, keeping their colors, strokes and other detail. Only
a visible topmost fill or stroke with an opacity above 0 counts. Clipping
paths, guides and opacity-mask art keep their shapes; a group's own fills
and strokes in the art take the effects; a nested instance passes them on
to its own art, except one whose symbol holds the outer symbol.

The canvas, Use Preview Bounds and the drawn bounds, SVG and PDF export
and Object > Expand Appearance use the same art. Expand Appearance is
enabled for such an instance and turns it into an editable group in one
undo step. Bounds measure the art with a dynamic symbol's overrides, as
the canvas draws it.

Existing documents with a geometry effect on a symbol instance's fill or
stroke draw differently: before, the effect drew nothing.
2026-11-12 17:15:04 -08:00
dotCooCoo aff731a9ca Docs: record the mesh outline fix in the Colour row
The Colour, swatches, gradients, patterns, mesh, recolor row of
docs/target-app-parity.md now lists the outline fix and its two tests.
Score and hours are unchanged.
2026-11-12 17:11:36 -08:00
dotCooCoo c5f406ffab 3D: an image inside a clip's box but outside its shape is left out
A 3D effect left an image in a clipping group out only when the image's
box missed the clipping path's box. An image in the corner of a round
clip's box, a turned image whose box reaches a clip but whose frame does
not, an image in an even-odd hole, or one inside each of two nested clips
but outside the area they show together was refused with the Image Trace
message, although it draws nothing.

The image's frame, the pixel rectangle as its transform places it, is now
cut to every clipping path around it in turn, each with its own fill rule,
and the image is left out when nothing is left. An image the clips show
any part of, a strip narrower than a hundredth of a point included, is
still refused. One effect's art cuts image frames at most 1,024 times;
past that, or when a cut fails, the art is refused.
2026-11-12 17:07:13 -08:00
dotCooCoo 61f170a761 Mesh: a point on a mesh's outline locates on its edge on every side
A point exactly on a gradient mesh's outline located on the top and left
edges but not on the bottom and right ones, where the nonzero winding
number is 0. object.mesh.addLine and Create Gradient Mesh at a point there
reported the point outside the mesh, and the Eyedropper did not sample it,
while the hit test selects the mesh there.

locate_within now takes the nearest point of the edge for a point within
a millionth of a point of the outline, with any tolerance, and returns
nothing for a point that is not finite. A point just outside still needs
a tolerance.
2026-11-12 16:56:22 -08:00
BFlat 487ffbba4b Merge pull request #6994 from dotCooCoo/fix/paste-style-pattern-order
Paste: text styles that paint with a pattern are pasted after the patterns they use
2026-11-13 07:49:08 +07:00
BFlat 89e22cb608 Merge pull request #6987 from dotCooCoo/fix/number-param-wrong-type
MCP: a required number given as a string is refused as the wrong type, not reported as missing
2026-11-13 07:49:01 +07:00
BFlat 0d553f9a4d Merge pull request #6985 from dotCooCoo/fix/fonts-in-masks-and-patterns
Fonts: Find Font, Replace Missing Fonts and font lists include type in opacity masks and patterns
2026-11-13 07:48:52 +07:00
BFlat 24af0c146a Merge pull request #6938 from dotCooCoo/fix/pdf-large-page-export
Export As: a PDF without artboards opens Save PDF and its options
2026-11-13 07:48:44 +07:00
BFlat cd6d197c58 Merge pull request #6992 from dotCooCoo/fix/open-filter-grid-presets
File formats: File › Open has filters for graphic style libraries and perspective grid presets
2026-11-13 07:48:31 +07:00
BFlat b4bc86c45c Merge pull request #6942 from dotCooCoo/feat/cjk-insert-aki
Type: Insert Aki Left and Right add space before and after a character
2026-11-13 07:48:24 +07:00
dotCooCoo 1ddcfb38a7 Artboards: a right-click on a panel row opens a menu with Rename
A right-click on a row of the Artboards panel opens a menu with Rename,
which opens the Rename dialog (artboard.rename) for the selected
artboards: OK names them in one undo step, numbered in panel order when
there are several, and Cancel renames nothing. A right-click on a row
that is not selected first makes its artboard the active one and the
only selected one; on a selected row the selection stays.

A drag with the right button no longer moves a row: only the primary
button starts a row drag.
2026-11-12 16:47:27 -08:00
dotCooCoo 06db8adae9 MCP: a parameter nested too deeply is refused as bad parameters
A value that nests past a command schema's 16-level limit was reported
as an internal error ("please report this bug"). It is now a parameter
error that names the value's path, like the schema's other refusals; a
schema that is wrong in itself is still an internal error.

The schema check now also refuses a list of ids or a point inside 16
lists, since every value of those types is a list and the value check
refuses a list at that depth. A color there still takes a string.

Docs: docs/mcp.md, docs/target-app-parity.md.
2026-11-12 16:45:18 -08:00
dotCooCoo 9b65bf2708 3D: a fill or stroke without the effect keeps an even-odd path's holes
With a 3D effect on one fill or stroke, the object's other fills and
strokes were drawn as nonzero paths, so an even-odd compound path or
path filled its holes in them. Extrude & Bevel, Inflate, Rotate,
Revolve and their Classic kinds now draw those items with the source's
fill rule, through the group code's shape_node helper.
2026-11-12 16:28:54 -08:00
jmverges a8fc5275b6 Merge remote-tracking branch 'upstream/main' into fix/remaining-type-envelopes
# Conflicts:
#	docs/target-app-parity.md
2026-11-13 00:25:12 +00:00
Sven Lafebre 6fa569ecc3 Merge remote-tracking branch 'origin/main' into fix/6969-rasterize-gray
# Conflicts:
#	docs/target-app-parity.md
2026-11-13 01:17:36 +01:00
dotCooCoo b1a3ec4a97 Merge main into feat/color-rgb-percent 2026-11-12 16:15:23 -08:00
dotCooCoo a14236eca8 i18n: script errors and failed-run lines are translated in every complete-message catalog
The status bar shows a failed script run as one line: the script's
name, the line and column (and the included file), the error and the
kind of failure, with any files the run left written. No catalog had a
row for that line, so the whole line stayed in English. The errors of
File, Folder, vc.run, $.evalFile, a script's $ object, its alert,
confirm and prompt dialogs, vc.document, vc.log, the limits a run can
pass and Drop Script Engine had no row in any complete catalog either,
and several were not listed by the untranslated-strings report.

- Every complete-message catalog has rows for these errors and for the
  failed-run line at each place and for each kind (syntax, thrown,
  limit, stopped, internal). The script's name, paths, numbers, code
  names ($.flags, File, answers, true, null, UTF-8), command ids and
  the text a script throws itself are kept.
- A failure with no line and column, such as an error in code eval
  compiled, is shown with one colon after the script's name
  ("t.js: TypeError: no (thrown)" instead of "t.js:: TypeError: no
  (thrown)").
- A placeholder that occurs twice in a message template matches only
  the same text both times. Before, "{name}: the next answer in
  `answers` is for {_1}, not {name}" matched a whole failed-run line
  and dropped its line, column and kind.
- The message scan reads the script host's fail(, value( and .over(
  helpers and the script interpreter's errors (the js crate), skips
  *_tests.rs files and cfg(all(test, ...)) modules, and reads a
  constant's text from the file or crate that declares it, so the
  Scripts menu's headers are no longer listed as messages.

Tests: i18n::tests::script_errors_are_translated,
script_host_errors_are_translated,
a_repeated_placeholder_matches_the_same_text,
message_scan_reads_constants_of_the_file_and_its_crate,
message_scan_reads_script_interpreter_errors,
message_scan_skips_test_modules_with_any_test_cfg,
tests::script_run::an_error_without_a_place_names_the_script_and_kind.
2026-11-12 16:13:33 -08:00
BFlat b70b52836c Merge pull request #6984 from mockydevs/fix/swatches-show-recent-colors-6617
Swatches: the panel menu's Show Recent Colors shows or hides the Recent Colors row
2026-11-13 07:09:15 +07:00
dotCooCoo 4bb1df4929 Plug-ins: a filter's gradient stop plates are clamped into range like its other colors
A filter's or importer's output clamps each gradient stop's offset,
opacity, midpoint, tint and color, but kept its four process plates as
given, so a plate below 0, above 1 or infinite was stored in the
document. Each plate is now clamped to 0-1: a value that is not a
number becomes 0, and an infinite one becomes 0 or 1 by its sign.
Painted live effects still refuse such a stop.

Docs: docs/plugins.md, docs/target-app-parity.md.
2026-11-12 16:04:43 -08:00