Commit Graph
6217 Commits
Author SHA1 Message Date
BFlat 38aec2b2fb Merge pull request #7797 from dotCooCoo/fix/outlined-strokes-under-a-non-uniform-type
Type: outlined strokes on unevenly scaled type keep their thickness in each direction
2026-11-16 01:34:20 +07:00
BFlat f8af52bba1 Merge pull request #7790 from dotCooCoo/fix/directional-pixel-effects-before-a-rotating-or
Effects: directional pixel effects before a rotating or reflecting Transform effect keep their angle
2026-11-16 01:34:02 +07:00
BFlat 54d20b303c Merge pull request #7860 from dotCooCoo/feat/variables-data-set-box-rename
Variables: the Data Set box renames the current data set
2026-11-16 01:33:45 +07:00
BFlat a1ec9d7e84 Merge pull request #7852 from dotCooCoo/feat/3d-panel-export-3d-object
3D and Materials: Export 3D Object adds the selection to Asset Export
2026-11-16 01:33:09 +07:00
BFlat b759c9e369 Merge pull request #7874 from dotCooCoo/fix/pdf-dont-include-profiles-removes-image-profiles
PDF export: a set Don't Include Profiles removes image color profiles
2026-11-16 01:33:00 +07:00
BFlat eaadc48d5a Merge pull request #7835 from dotCooCoo/feat/contextual-task-bar-smooth-free-transform
Contextual Task Bar: the Smooth tool shows its Fidelity and Tool Options
2026-11-16 01:32:29 +07:00
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 93c7f4d88b Merge main into fix/pdf-dont-include-profiles-removes-image-profiles 2026-11-15 08:19:34 -08:00
dotCooCoo e5f5bbd836 Merge main into feat/contextual-task-bar-smooth-free-transform 2026-11-15 08:07:59 -08:00
dotCooCoo f0a154a8ed Merge main into fix/pdf-knockout-overprint-isolation 2026-11-15 08:06:45 -08:00
dotCooCoo fc6196d91f Merge main into feat/variables-data-set-box-rename 2026-11-15 08:06:29 -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
dotCooCoo 06c4efc9b6 Merge main into feat/3d-panel-export-3d-object 2026-11-15 07:54:51 -08:00
dotCooCoo c0f911b60d Merge main into fix/directional-pixel-effects-before-a-rotating-or 2026-11-15 07:54:40 -08:00
dotCooCoo 4c708145d4 Merge main into fix/outlined-strokes-under-a-non-uniform-type 2026-11-15 07:54:34 -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 ec4a1ac25d PDF export: a set Don't Include Profiles removes image color profiles
When Profile inclusion is set to Don't Include Profiles (`profiles:
"none"`), gray, RGB and CMYK images are written in device color spaces
without their ICC profiles, and a JPEG that is kept as is loses its
APP2 ICC_PROFILE segments. PDF/A-2b, PDF/X-3 and PDF/X-4 keep tagging
their images.

Leaving the setting out keeps the earlier output. `profiles` now
serializes as null when not set, `"default"` clears a preset's value,
and Save PDF > Output lists Default first. Presets and stored settings
saved earlier hold `"profiles": "none"`, so exports from them now drop
image profiles.
2026-11-15 07:27:08 -08: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 6523a33224 3D and Materials: Export 3D Object adds the selection to Asset Export
The 3D and Materials panel gets an Export 3D Object button. It adds the
selected objects that have a visible 3D effect to Asset Export as 3D
assets through assets.add3D, the command behind Asset Export's own
Export 3D Object, selects their assets there and shows the Asset Export
panel. Objects without a 3D effect, and a 3D object inside another
selected one, are left out. The button is unavailable while no selected
object has a visible 3D effect. Adding is one undo step, and nothing is
recorded when every object is an asset already.

Docs: docs/three-d.md, docs/mcp.md, docs/effects-parity.md,
docs/target-app-parity.md.
2026-11-15 06:41:48 -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 46f6d41f6a Merge main into feat/variables-data-set-box-rename 2026-11-15 06:40:43 -08:00
dotCooCoo e3551a92e4 Variables: the Data Set box renames the current data set
The Data Set row at the top of the Variables panel now holds a text box
with the current data set's name. A new name entered there renames the
data set through dataset.rename, as one undo step. The same name runs
nothing, so no undo step is added. An empty name or the name of another
data set is refused, and the status bar shows the error. A list button
beside the box still chooses a data set, and the arrows still step
through them. With no data set the box is disabled.
2026-11-15 06:39:44 -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 5d9c5c6297 Merge main into fix/outlined-strokes-under-a-non-uniform-type 2026-11-15 06:17:25 -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
dotCooCoo 57320b53a0 Merge main into fix/directional-pixel-effects-before-a-rotating-or 2026-11-15 06:14:09 -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