Commit Graph
14681 Commits
Author SHA1 Message Date
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 e1f8a15d61 Merge pull request #7855 from dotCooCoo/fix/live-paint-shift-triple-click-joined-faces
Live Paint: test that a Shift-triple-click keeps joined faces of the same fill
2026-11-16 01:32:15 +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 fa7e26aa11 Merge pull request #7882 from dotCooCoo/fix/variable-options-fills-unset-field
Variables: Variable Options fills the field left unset after the Variable changes
2026-11-16 01:31:28 +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 fe5787405e Merge pull request #7879 from dotCooCoo/fix/screens-artboard-name-keys
Export for Screens: artboard name fields close on a first-frame key and commit when another opens
2026-11-16 01:31:09 +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 1df834568d Variables: Variable Options fills the field left unset after the Variable changes
Setting the Variable field through ui.dialog.set clears Name and Kind
until a frame fills them from the chosen variable. Setting Name or Kind
alone before that frame marked the fields as filled, so the other field
stayed null and the dialog showed "null" for Name or a blank Kind. OK
already read a null field as the variable's own value, so only the
displayed field was wrong.

A frame now fills every field when the chosen variable changes, and
after that fills only a field that is still null, keeping a field that
was set.
2026-11-15 08:31:19 -08:00
dotCooCoo e837dae7b3 Export for Screens: artboard name fields close on a first-frame key and commit when another opens
Escape or Enter pressed in the first frame that draws an artboard's name
field was dropped: the field asked for focus and skipped its key checks,
while the dialog kept itself open for the field. The field now ends the
edit on either key in that frame too.

A double-click on an earlier artboard's name, with both clicks in one
frame, replaced the edit of a later artboard before that artboard's field
was drawn, so the name typed there was lost. The typed name now goes to
its artboard before the new field opens.

Follows #7695.
2026-11-15 08:30:11 -08:00
dotCooCoo d089df0ab5 Recolor Artwork: Find tries every lighter tint down to 1%
When a selected row listed the twenty tints from 25% through 6% of a color
of an unselected row, Find left that color undimmed although its 5% tint
was free. The search now tries each tint a percent apart from 25% down to
1% before leaving a color as it is.
2026-11-15 08:28:08 -08:00
dotCooCoo 77fa739f2f Merge main into fix/live-paint-shift-triple-click-joined-faces 2026-11-15 08:08:20 -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
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 7ba0d2fd08 Merge pull request #7841 from MMexicann/patch-1
docs(G2): describe the shipped Effect Gallery preview
2026-11-15 22:44:48 +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 dd57562d46 Merge main into feat/3d-classic-track-cube 2026-11-15 07:42:24 -08:00
dotCooCoo 6437627050 Merge main into fix/shadow-validation-builds-its-shadow-geometry 2026-11-15 07:41:58 -08:00
dotCooCoo 80baae91cd 3D (Classic): the panel's and a dialog's track cubes each keep their own focus and drag
With the 3D and Materials panel and a classic 3D dialog both showing a
track cube, the two cubes shared one widget id, so the keyboard focus of
one moved the other, and a drag on one cube was read by the other: Escape
there put the first cube's settings into it, and its button-up check ended
the gesture before the cube being dragged saw the release. Each cube now
has its own id, keyed by its dialog or panel, and only the cube a drag
started on follows, restores or ends it.
2026-11-15 07:38:56 -08:00
BFlat 8803a9e31a Merge pull request #7857 from storytold/fix/ka-duplicate-rows
i18n: Georgian keeps one row of each duplicated message (fix main)
2026-11-15 22:38:46 +07:00
dotCooCoo 8e602cb980 Recolor Artwork: Find dims a row color given as a value, not a string
A row of the rows that aren't selected whose current color was given as a
color value (`[r,g,b]` or a CMYK, gray or Lab object) was left undimmed,
because only string entries went into the dimming map. Such a color now
dims under its color key, the form `recolor.apply` matches it by.
2026-11-15 07:21:00 -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 216e14a6a7 Recolor Artwork: Find keeps the plain tint when only an exact key shares its hex
The tint Find gives a row that isn't selected was skipped when its hex
matched the hex of a selected row's exact key, though `recolor.apply`
matches an exact key only by its key. The lighter tint was taken, and when
every candidate collided the color was left undimmed. Only a "#rrggbb"
entry is now compared by hex.
2026-11-15 07:06:15 -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
bflatastic f577781921 i18n: Georgian keeps one row of each message added twice
#7774's Georgian catalog and #7532's script.run answers rows landed in the same batch with
twelve of the same messages, so bundled_catalogs_are_consistent fails on a duplicate. The
first of each pair stays.
2026-11-15 21:50:17 +07: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 f021c29b6f Live Paint: test that a Shift-triple-click keeps joined faces of the same fill
A Shift-triple-click on a face whose double-click already reached a
joined face of the same fill selects every face with that fill. The new
test pins that the joined face the double-click toggled on is not
toggled off again by the triple-click.
2026-11-15 06:44: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 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 e06958143d Merge pull request #7825 from dotCooCoo/fix/nested-symbol-box-is-not-a-hit
Selection: a nested symbol instance's box past the outer box is not a hit
2026-11-15 20:45:25 +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
BFlat 126f820db2 Merge pull request #4508 from el-j/perf/post-edit-cascade-4502
perf(engine): optimize selection prune and sanity checks for large selections (#4502)
2026-11-15 20:44:54 +07:00
BFlat 4a29b219d2 Merge pull request #7774 from devius/ka-update
i18n(ka): update the Georgian catalog (2,129 strings)
2026-11-15 20:44:47 +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