Commit Graph
5141 Commits
Author SHA1 Message Date
BFlat 03b84fda34 Merge pull request #3814 from Taha-Mahmoodi/feat/simplify-part-of-path
Simplify: with part of a path direct-selected, Object › Path › Simplify refits only the selected runs of segments
2026-10-24 02:27:35 +07:00
BFlat b18dda34f5 Merge pull request #3791 from dotCooCoo/fix/opening-waits-only-for-a-drag
Open and Place: a file read in the background waits for a busy tool only during a drag
2026-10-24 02:26:57 +07:00
BFlat 107a2c2a54 Merge pull request #3798 from MiQ71/fix-3766-stroke-profile-flip
Fix #3766: correct stroke profile flip icons
2026-10-24 02:26:24 +07:00
BFlat 4fddbd2337 Merge pull request #3805 from Taha-Mahmoodi/fix/3705-double-click-clip-group
Fix #3705: art drawn or pasted inside an isolated object in Draw Inside stays in isolation mode
2026-10-24 02:25:53 +07:00
BFlat edf5db3f6c Merge pull request #3827 from dotCooCoo/fix/point-type-from-threaded-frame-keeps-its-text-once
Threaded text: Convert To Point Type on a frame no longer duplicates its text
2026-10-24 02:25:20 +07:00
BFlat 99c788beb8 Merge pull request #3783 from marcoarnulfo/feat/tab-strip-double-click-collapse
Panels: a double-click on the tab strip right of the tabs collapses the group
2026-10-24 02:24:45 +07:00
BFlat 81028c80e0 Merge pull request #3830 from marcoarnulfo/feat/tab-collapse-beside
Panels: a double-click on a tab of a group beside another no longer reports an error
2026-10-24 02:24:15 +07:00
BFlat c92ce1153b Merge pull request #3840 from marcoarnulfo/fix/cmd-click-ends-type-editing
Type: a Ctrl/Cmd click away from the type being edited ends its edit
2026-10-24 02:23:45 +07:00
BFlat 758e57902b Merge pull request #3845 from MarekSpodBiedry/issue-3769
Bring the window forward when Finder opens a file (#3769)
2026-10-24 02:23:20 +07:00
Taha-Mahmoodi 309119dc4c Docs: Simplify of part of a path is described in our own words, not the help page's
Review follow-up (CodeRabbit, clean-room): the test header, gaps.md and
target-app-parity.md quoted a phrase from the cited help page. Comments
and docs only.
2026-10-24 02:05:19 +07:00
dotCooCoo 2db1ada660 Open and Place: a file read in the background waits for a busy tool only during a drag
A file opened or placed off the UI thread waited while the active tool
reported busy. The Dimension tool also reports busy between its clicks,
so after one click a ready file stayed queued with its spinner until
the dimension was finished or canceled. Files also waited between the
clicks of the Blend tool.

The session now records whether the pointer button is held. A file
waits for a busy tool only while the button is held. A file that
opens between a tool's clicks resets the tool, as a switch of
documents does; a file placed in the active document leaves the
tool's clicks in place. Files still wait while a dialog is open, a
drag is under way or a preview is open, and a tool's preview between
its clicks counts as one (the Flare tool after its center drag, the
Dimension tool's line once the pointer moves after its second click).
2026-10-24 02:05:19 +07:00
Mirko Kerezovic 78213cdf00 Fix #3766: correct stroke profile flip icons 2026-10-24 02:05:19 +07:00
Taha-Mahmoodi 9ca5ffab8e Fix #3705: view.drawMode's params text says plainly where isolation goes
Review follow-up (CodeRabbit): the sentence about isolation in the
command's parameter text was hard to parse. Text only.
2026-10-24 02:05:19 +07:00
Taha-Mahmoodi 606796b934 Simplify: with part of a path direct-selected, Object › Path › Simplify refits only the selected runs of segments
The Simplify help page says a path can be simplified whole or "a specific
path region with the Direct Selection tool"
(https://helpx.adobe.com/illustrator/desktop/draw-shapes-and-paths/modify-paths/manually-simplify-paths.html).
Simplify refitted every selected path whole, whatever part of it was
direct-selected.

object.path.simplify now looks at each path's direct selection: the
segments picked as segments, or else every segment with both anchors
selected. Each run of consecutive selected segments is refitted on its own
(vectorcraft_pathops::simplify_part) between its two end anchors, which stay
where they are with their handles on the side away from the run; every
other anchor and segment stays exactly as it was. A closed path's run may
cross its start point (the path then starts at the run's end anchor),
separate runs on one path simplify independently in one undo step, and the
runs stay direct-selected (as segments when segments were picked). A path
with only lone anchors selected still simplifies whole, as before, and
wholePaths: true simplifies partly selected paths whole. The slider, its
preview, Auto-Simplify and the Simplify dialog all run the command, so
they act on the part too. simplify_with now shares its run fitting with
the part refit (same results).

Verification: crates/engine/src/tests_simplify_part.rs (unselected anchors
and segments equal bit for bit, run end anchors fixed, the run within the
tolerance, two runs equal to each simplified alone in one undo step, a
closed run across the start point, picked segments, wholePaths, slider
preview and Auto-Simplify, a run that can't be simpler records no step)
and simplify_slider_and_dialog_simplify_only_the_direct_selected_part_of_a_path
(the slider's preview, Enter and the dialog's OK). Live: the release build's
slider at level 20 on a 91-anchor wave with anchors 30–60 selected refits
only that stretch.
2026-10-24 02:05:19 +07:00
Taha-Mahmoodi 0a83c19911 Fix #3705: art drawn or pasted inside an isolated object in Draw Inside stays in isolation mode
The drawing modes help page
(https://helpx.adobe.com/illustrator/desktop/draw-shapes-and-paths/learn-drawing-basics/drawing-modes-overview.html)
has you draw or paste into the selected object in Draw Inside. The isolation
help page
(https://helpx.adobe.com/illustrator/desktop/manage-objects/select-objects/isolate-objects.html)
isolates a path, group or object on a double-click with the Selection tool,
and puts art added in isolation mode where the isolated art was once the mode
ends, so that art belongs with what is isolated.

Steps: select a path, choose Draw Inside, double-click the path with the
Selection tool (it is isolated), then draw or paste. The art went into the
clip group Draw Inside makes around the path, but isolation mode stayed on the
bare path, so the new art was outside it: drawn dimmed, passed through by
clicks and marquees, and a double-click on it selected the path and never
entered the clip group. Double-clicking an existing Draw Inside clip group
from outside isolation mode already isolated it, and pastes then went inside
it; that is unchanged.

Cause: create::insert_look_turned and edit::paste_clip put the art into
create::draw_inside_group's clip group but left DocState::isolation on the
object drawn into, and with a single object isolated, hit testing reaches
only that object.

Change: when the object drawn into is the isolated one, isolation moves to its
clip group (create::isolate_draw_inside_group), after new art and after Draw
Inside pastes. A drag's previews replay from its snapshot and make the group
under the same id, and cancelling the drag restores the isolation it began
with. Undo and redo end isolation mode when the isolated object is no longer
in the document (the undone clip group), as mask editing already does,
instead of keeping an id a later object may take.

Verification: drawing_inside_an_isolated_object_keeps_the_new_art_in_isolation_mode
fails without the change (isolation Some(NodeId(2)) instead of the clip group
Some(NodeId(6))). A whole-window egui run through the control channel's
ui.click/ui.drag (double-click the rectangle, drag an ellipse inside, paste,
click the copy) left isolation on the rectangle and the click selected the
rectangle before; after, isolation is on the clip group and the click selects
the copy.
2026-10-24 02:05:19 +07:00
dotCooCoo 0083587131 Threaded text: Convert To Point Type on a frame no longer duplicates its text
Converting a frame of threaded text to point type left the frame's
text in the point type, and the re-flow also added that text to the
story, as it does for a frame that was deleted. The other frames then
held it a second time.

A frame that is still in the document as point type now leaves its
thread with the text it holds. The story flows through the other
frames without that text, so each character is held once. A thread
left with one frame is no longer a thread, and undo restores the
thread.

Docs: docs/mcp.md, docs/target-app-parity.md.
2026-10-24 02:05:18 +07:00
Marco Arnulfo 777930fcd2 Panels: a double-click on the strip of a group beside another does nothing
Such a group can't collapse, so the strip queued window.panel.collapse only for the command to refuse it and leave an error in the status bar.
2026-10-24 02:05:18 +07:00
Marco Arnulfo 35104e10ed Panels: a double-click on a tab of a group beside another no longer reports an error 2026-10-24 02:05:18 +07:00
Marco Arnulfo 78396465a5 Type: a Ctrl/Cmd click away from the type being edited ends its edit (fixes #3779) 2026-10-24 02:05:18 +07:00
MarekSpodBiedry df2a350c41 Bring the window forward when Finder opens a file (#3769) 2026-10-24 02:05:18 +07:00
Marco Arnulfo 0666e8e978 Panels: a double-click on the tab strip right of the tabs collapses the group (fixes #3620) 2026-10-24 02:05:18 +07:00
BFlat 6b27afd8eb Merge pull request #3776 from Silvertree2010/fix/3581-audit-rendering-nested-blending
Bound offscreen pixels kept alive by nested blending groups
2026-10-24 02:02:54 +07:00
BFlat 5dfa070f71 Merge pull request #3777 from Silvertree2010/fix/3580-audit-rendering-each-opacity-mas
Render opacity masks over the masked object's bounds
2026-10-24 02:02:37 +07:00
BFlat bd09003700 Merge pull request #3801 from Silvertree2010/fix/3574-audit-native-format-image-entrie
Share native-format entries naming the same bytes; cap copies at data
2026-10-24 02:02:18 +07:00
BFlat 16eb0e9c9a Merge pull request #3806 from Silvertree2010/fix/3570-audit-pdf-import-page-hash-decod
Hash PDF page contents without caching a decoded copy per page
2026-10-24 02:02:02 +07:00
BFlat a055646d7b Merge pull request #3800 from Silvertree2010/fix/3571-audit-dxf-import-anonymous-block
Cap path elements in DXF import across the whole file
2026-10-24 02:01:45 +07:00
BFlat 5d899aebfd Merge pull request #3794 from Silvertree2010/fix/3572-audit-dxf-import-nested-inserts
Bound DXF import work for nested inserts that produce no nodes
2026-10-24 02:01:28 +07:00
BFlat 54407b8139 Merge pull request #3789 from Silvertree2010/fix/3573-audit-dxf-import-each-minsert-re
Cap the total array insert copies in a DXF import
2026-10-24 02:01:12 +07:00
BFlat 124b50c667 Merge pull request #3754 from Silvertree2010/fix/3595-audit-dxf-import-paper-layouts-a
Fix quadratic paper layout de-duplication in DXF import
2026-10-24 02:00:53 +07:00
BFlat 2c0e11ceba Merge pull request #3822 from Silvertree2010/fix/3593-audit-eps-import-gstate-currentg
Charge gstate and currentgstate path copies to the memory budget
2026-10-24 02:00:40 +07:00
BFlat 00d7e6ca91 Merge pull request #3821 from Silvertree2010/fix/3568-audit-eps-import-image-sample-pl
Charge and bound EPS image sample planes on import
2026-10-24 02:00:25 +07:00
BFlat 05adda98ee Merge pull request #3810 from Silvertree2010/fix/3567-audit-eps-import-postscript-filt
Charge PostScript filter output to the EPS interpreter budget
2026-10-24 02:00:08 +07:00
BFlat a3a12f2ce7 Merge pull request #3816 from Silvertree2010/fix/3582-audit-eps-import-postscript-sear
Fix quadratic PostScript search in the EPS importer
2026-10-24 01:59:47 +07:00
BFlat 6f3269149d Merge pull request #3858 from Silvertree2010/fix/h1827-ascii85-encoder-can-start-its-fi
Keep ASCII85 output from starting its first line with '%'
2026-10-24 01:59:36 +07:00
BFlat e1da78fa75 Merge pull request #3771 from Silvertree2010/fix/3585-audit-eps-import-nan-reaches-f64
Raise undefinedresult for non-finite EPS arithmetic instead of panicking
2026-10-24 01:59:20 +07:00
BFlat d5f1557e98 Merge pull request #3847 from Taha-Mahmoodi/fix/pdf-security-message-i18n
i18n: every catalog translates "PDF security settings are not an object"
2026-10-24 01:59:02 +07:00
bflatastic e2713842c4 Bound offscreen pixels kept alive by nested blending groups
Squashed from #3776 onto main.
2026-10-24 01:44:01 +07:00
NetterSilverandClaude Opus 5.5 4331eba12e Render opacity masks over the masked object's bounds
Fixes #3580

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:44:00 +07:00
NetterSilverandClaude Opus 5.5 22057c973e Share native-format entries naming the same bytes; cap copies at data
Fixes #3574

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:44:00 +07:00
NetterSilverandClaude Haiku 5.5 58d94f6122 Hash PDF page contents without caching a decoded copy per page
Fixes #3570

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 01:43:59 +07:00
bflatastic 07762956d2 Cap path elements in DXF import across the whole file
Squashed from #3800 onto main.
2026-10-24 01:43:58 +07:00
NetterSilverandClaude Haiku 5.5 609132987b Bound DXF import work for nested inserts that produce no nodes
Fixes #3572

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 01:43:58 +07:00
bflatastic 5455e9be07 Cap the total array insert copies in a DXF import
Squashed from #3789 onto main.
2026-10-24 01:43:57 +07:00
NetterSilverandClaude Haiku 5.5 23bc1c0027 Fix quadratic paper layout de-duplication in DXF import
Fixes #3595

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 01:43:56 +07:00
bflatastic fd7c2eb977 Charge gstate and currentgstate path copies to the memory budget
Squashed from #3822 onto main.
2026-10-24 01:43:56 +07:00
bflatastic 246750c147 Charge and bound EPS image sample planes on import
Squashed from #3821 onto main.
2026-10-24 01:43:55 +07:00
NetterSilverandClaude Haiku 5.5 0b6097e572 Charge PostScript filter output to the EPS interpreter budget
Fixes #3567

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 01:43:54 +07:00
NetterSilverandClaude Haiku 5.5 3867e87036 Fix quadratic PostScript search in the EPS importer
Fixes #3582

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 01:43:54 +07:00
NetterSilverandClaude Haiku 5.5 abe277462b Keep ASCII85 output from starting its first line with '%'
Found while testing crates/eps/src/ps.rs:190-197 (ascii85)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 01:43:53 +07:00
NetterSilverandClaude Opus 5.5 b3df3d2069 Raise undefinedresult for non-finite EPS arithmetic instead of panicking
Fixes #3585

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:43:52 +07:00