Commit Graph
6189 Commits
Author SHA1 Message Date
BFlat adc0b1ca98 Merge pull request #7876 from dotCooCoo/fix/mcp-queued-psd-import-options
Docs: queued PSD files ask for their import options with Show Import Options on
2026-11-16 01:32:02 +07:00
BFlat 351e9cfe1e Merge pull request #7856 from dotCooCoo/fix/pdf-knockout-overprint-isolation
PDF import: an isolated group with overprinting art inside stays isolated
2026-11-16 01:31:50 +07:00
BFlat a505c34ceb Merge pull request #7853 from dotCooCoo/fix/svg-blur-by-direction
SVG import: a blur that differs by direction is kept as its SVG filter
2026-11-16 01:31:37 +07:00
BFlat 20e577fe45 Merge pull request #7758 from dotCooCoo/feat/recolor-find-colors
Recolor Artwork: Find shows the selected rows' art and dims the rest
2026-11-16 01:31:19 +07:00
BFlat f23d7f9d00 Merge pull request #7744 from ruchirguitar/feat/4936-check-spelling-dialog
feat(ui): implement Check Spelling modal dialog (#4936)
2026-11-16 01:31:00 +07:00
BFlat 5bd8acfce9 Merge pull request #7762 from dotCooCoo/feat/3d-classic-track-cube
3D (Classic): the track cube turns the object on the Rotation tab
2026-11-16 00:04:07 +07:00
BFlat a391dedfe5 Merge pull request #7875 from dotCooCoo/fix/live-paint-bucket-click-history
Live Paint: Bucket double-click and triple-click match the paint from before a drag, a view-tool press or a joined edge
2026-11-15 23:56:28 +07:00
BFlat cf34cf8ed0 Merge pull request #7829 from dotCooCoo/fix/shadow-validation-builds-its-shadow-geometry
3D: shadow validation casts from the solids it checks
2026-11-15 23:56:19 +07:00
dotCooCoo f0a154a8ed Merge main into fix/pdf-knockout-overprint-isolation 2026-11-15 08:06:45 -08:00
ruchirguitar 104a844da1 feat(ui): implement Check Spelling modal dialog (#4936)
# Conflicts:
#	docs/roadmap.md
2026-11-15 21:33:12 +05:30
dotCooCoo 89f1415af7 Merge main into fix/svg-blur-by-direction 2026-11-15 07:55:03 -08:00
BFlat bd67a010f6 Merge pull request #7827 from dotCooCoo/feat/ai-export-writes-kinsoku-kinsoku-shori-type
.ai export: paragraphs keep Kinsoku, Kinsoku Shori Type, Burasagari and Bunri-Kinshi
2026-11-15 22:45:05 +07:00
BFlat 9c2f6ec53d Merge pull request #7838 from dotCooCoo/feat/ai-save-nested-envelope-editable
.ai import: an envelope straight in another envelope's contents block opens live inside it
2026-11-15 22:44:56 +07:00
BFlat d5b8d51d64 Merge pull request #7843 from MMexicann/patch-2
docs(G6): complete the control method reference
2026-11-15 22:44:40 +07:00
dotCooCoo d86c9871c6 Live Paint: a triple-click after a release across an edge matches the fill from before it
When a click's press lands in one face and its release in the next, the
drag fills both. The bucket now notes the fill every face the drag
crosses had before the press, the release included, so a double-click
or triple-click that follows on such a face compares that fill instead
of the one the first click gave it. This also holds when the release of
the last click crosses into the clicked face.

When the first click makes the Live Paint group, or merges the selection
into a selected group, the crossed face counts with the fill it was made
with: a kept face's paint from the merged group (an unplaced gradient
fixed to its fit), else the fill Make gives it, the topmost fill that
draws of the front-most source path over it that has one. A selected
group's edges no longer count as source paths.

A double-click whose two clicks land on two joined edges now paints the
edges joined through the other edge its clicks painted:
livePaint.strokeEdge takes `through`, edge ids that the join counts as
drawing with `match`, and the tool passes that edge. When the second
press lands on the next edge and is released back on the first, the
double-click matches the first edge's stroke paint from before the
first click.

A press that the view tools take (held Space, the middle button), or
that holds Cmd/Ctrl and goes to the lent selection tool, now counts as
a press that paints nothing, so the clicks around it are not taken for
one triple-click's: the session tells the tool through the new
Tool::press_elsewhere.

The tool doc, docs/mcp.md and the progress-doc line now say that a click
records an undo step only when it changes a paint, and that a
triple-click paints the faces that have the clicked face's fill (and the
edges that draw with the clicked edge's stroke paint) with the bucket's
paint.

Follows #7291.
2026-11-15 07:19:56 -08:00
dotCooCoo d1213a923e Merge branch 'feat/3d-classic-track-cube' into feat/3d-classic-track-cube 2026-11-15 06:56:42 -08:00
dotCooCoo 9d9b69a544 PDF import: an isolated group with overprinting art inside stays isolated
The importer kept a group's isolation only when something inside it
blended, so an isolated group or knockout group whose objects only
overprint read back without isolation. Written out again, it lost its
/I true and its overprinting objects then kept the inks of the art below
the group that they had covered. Isolation is now also kept when a
visible fill or stroke inside, or characters' fill or stroke, overprints,
directly or through children that do not isolate.
2026-11-15 06:46:56 -08:00
dotCooCoo 9afdbe2b03 SVG import: a blur that differs by direction is kept as its SVG filter
A feGaussianBlur or feDropShadow whose blur is not the same in every
direction in the document came in as an even Gaussian Blur or Drop
Shadow of the mean standard deviation. That covers two different
standard deviations (stdDeviation="4 1") and an even one in a skewed or
unevenly scaled user space. An SVG Filters effect in such a user space
is exported live under that transform, so on reopening its blur lost
the difference between directions.

Such a filter is now kept as an SVG Filters effect, which draws it as
it is. A blur in a turned, flipped or evenly scaled user space still
becomes the live effect, and a filter that no SVG Filters effect can
keep still comes in as the nearest even effect, as before.
2026-11-15 06:41:20 -08:00
dotCooCoo b977086e13 Docs: queued PSD files ask for their import options with Show Import Options on
docs/mcp.md said every PSD or PSB file of a loaded place cursor comes in
with the choices made last. With Show Import Options on, each such file
that has import options shows PSD Import Options when it is clicked or
dragged (place::place_from_cursor, and the psd_import test
a_cursor_loaded_with_show_import_options_on_asks_for_each_psd_file);
only with it off do the last choices apply.
2026-11-15 06:25:40 -08:00
dotCooCoo 4cbd326445 Merge main into feat/3d-classic-track-cube 2026-11-15 06:18:12 -08:00
dotCooCoo ae1b3c53b1 Merge main into feat/recolor-find-colors 2026-11-15 06:16:10 -08:00
dotCooCoo 0272bb6de8 Merge main into fix/shadow-validation-builds-its-shadow-geometry 2026-11-15 06:15:03 -08:00
BFlat 3075889f0c Merge pull request #7812 from dotCooCoo/fix/a-nested-message-value-that-starts-with-is-not
i18n: an effect refusal inside another message is translated with its reason
2026-11-15 20:46:00 +07:00
BFlat 3239725c40 Merge pull request #7817 from dotCooCoo/feat/psd-import-options-import-slices-after-7649
PSD: Import Slices brings a file's slices in as user slices on Open and Place
2026-11-15 20:45:50 +07:00
BFlat b389d3e5bc Merge pull request #7830 from dotCooCoo/fix/a-symbol-instance-written-as-its-art-reads-back
.ai save: live art written as a group keeps wrapping type by its bounds
2026-11-15 20:45:41 +07:00
BFlat 402b8c7820 Merge pull request #7824 from dotCooCoo/fix/a-part-with-nan-opacity-neither-casts-a-shadow
3D: art at NaN or infinite opacity casts no shadow
2026-11-15 20:45:32 +07:00
BFlat 9531b8a57a Merge pull request #7826 from dotCooCoo/fix/a-knockout-group-with-no-blending-inside-still
PDF export: a knockout group that does not isolate is written without /I true
2026-11-15 20:45:11 +07:00
BFlat ea3f81d9c3 Merge pull request #7518 from Taha-Mahmoodi/feat/indic-composers
feat(text): Middle Eastern & South Asian and Standard composers per paragraph (#4935)
2026-11-15 20:45:02 +07:00
Mex 6b821c7c50 docs(G6): complete the control method reference
Document the existing resize defaults and parameterless focus method. Keep one complete ui.render row, including traceViews, and record the documentation revision.

Source and rendered table reviewed. No local Rust build or tests ran; cargo/rustc are unavailable and PR CI validation is required.
2026-11-15 14:37:37 +01:00
dotCooCoo 4e57e7594a Merge main into feat/ai-save-nested-envelope-editable 2026-11-15 04:55:08 -08:00
dotCooCoo 6fc0ef4596 .ai import: an envelope straight in another envelope's contents block opens live inside it
An envelope record that lies in an outer envelope's AIDeformArtKey
block (X= ... X+) with no group around it now opens as a live envelope
inside the live outer one, and an object's own dictionary there (its
name) applies to it. Each envelope is still compared with its own drawn
art: an inner one that doesn't match keeps its drawn art as the outer
envelope's contents, and an outer one that doesn't match keeps its own.

- An envelope record in an opacity mask's art reads as part of the
  mask; its block's X+ no longer ends the mask's art, which failed the
  import.
- Envelopes still waiting for their XP when a dictionary ends keep
  their drawn art, so a stray XP in a later container cannot take them.
2026-11-15 04:54:40 -08:00
BFlat 04731b9ce0 Merge pull request #7771 from dotCooCoo/feat/status-bar-show-menu
Status bar: a Show menu chooses what the info field displays
2026-11-15 19:45:09 +07:00
BFlat 8f339eeaa1 Merge pull request #7532 from dotCooCoo/fix/script-answers-errors-translated
i18n: script.run answers errors are translated in every complete-message catalog
2026-11-15 17:31:19 +07:00
BFlat f62932eb93 Merge pull request #7776 from dotCooCoo/feat/aia-files-carry-select-object-steps
Actions: Load Actions… reads .aia Set Selection steps as Select Object
2026-11-15 17:31:10 +07:00
BFlat 8138a6e973 Merge pull request #7814 from dotCooCoo/feat/editing-one-anchor-copies-the-whole-anchor-list
Paths: editing one anchor of a long path keeps one chunk of anchors for undo
2026-11-15 17:31:01 +07:00
BFlat e5951a7dfe Merge pull request #7815 from dotCooCoo/fix/a-reverted-document-keeps-its-uid-so-a-trace
Image Trace: a trace started before Revert does not apply after it
2026-11-15 17:30:52 +07:00
BFlat 20282a13d0 Merge pull request #7807 from dotCooCoo/fix/guide-add-select-allonartboard-select-font-scope
MCP: guide.add and the artboard selections refuse an artboard that is not a whole number
2026-11-15 17:30:38 +07:00
BFlat 1387328255 Merge pull request #7731 from dotCooCoo/feat/svg-filter-user-space-matrix
SVG Filters: a filter on a turned or skewed object is kept on import and drawn
2026-11-15 17:30:29 +07:00
BFlat b13d3d15b4 Merge pull request #7806 from dotCooCoo/fix/merging-a-spot-swatch-into-another-drops-the-old
Swatches: merging a swatch drops the process plates of the gradient stops linked to it
2026-11-15 17:30:20 +07:00
BFlat 7350a7a703 Merge pull request #7810 from dotCooCoo/fix/burasagari-and-push-in-on-a-tabbed-right-to-left
Type: a burasagari mark hangs only where it is drawn at the line's right end
2026-11-15 17:30:12 +07:00
dotCooCoo 4c669e9ba1 Merge main into fix/a-symbol-instance-written-as-its-art-reads-back 2026-11-15 02:11:11 -08:00
dotCooCoo c1b756e633 .ai save: the bounds rectangle of live art written as a group goes below its art
The unpainted rectangle that carries the text wrap options of a symbol
instance, blend, mesh, repeat, placed document, intertwine or envelope
written as a group of its art is now the group's first member. Area type
below the object still wraps by its bounds after reopening, and area type
in the art itself is not wrapped by the rectangle, so art that holds area
type no longer keeps the options on its group and wraps by its members.
2026-11-15 02:02:29 -08:00
dotCooCoo 51ac02eb2f Merge main into fix/shadow-validation-builds-its-shadow-geometry 2026-11-15 01:54:35 -08:00
dotCooCoo 00b26dd5f8 PDF export: an overprinting element of a knockout group that does not isolate overprints the art below
A test exports a knockout group that does not isolate, whose top element
overprints, and checks that its /K group carries no /I true, that the
overprinting graphics state (/OP, /op, /OPM 1) is written, and that the
overprint and the knockout group read back. An isolated group keeps
/I true.
2026-11-15 01:54:35 -08:00
dotCooCoo 4b5062efd1 Merge main into feat/ai-export-writes-kinsoku-kinsoku-shori-type 2026-11-15 01:53:34 -08:00
dotCooCoo 4aea84f419 Merge main into fix/a-part-with-nan-opacity-neither-casts-a-shadow 2026-11-15 01:49:16 -08:00
Taha-Mahmoodi d4ac2782c0 Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	docs/target-app-parity.md
2026-11-15 14:12:59 +04:30
dotCooCoo 9c537a3df0 Merge main into fix/a-knockout-group-with-no-blending-inside-still 2026-11-15 01:42:07 -08:00
dotCooCoo 765dead1da Merge main into fix/shadow-validation-builds-its-shadow-geometry 2026-11-15 01:42:03 -08:00
dotCooCoo 028c8b5e99 Merge main into feat/ai-export-writes-kinsoku-kinsoku-shori-type 2026-11-15 01:41:30 -08:00