Commit Graph
10920 Commits
Author SHA1 Message Date
Taha-Mahmoodi c8b3c860e7 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 17:59:13 +04:30
BFlat c064ded1d1 Merge pull request #6592 from dotCooCoo/fix/pasted-svg-filter-free-name
Effects: a pasted SVG filter is not renamed to a name the document's effects use
2026-11-11 20:28:20 +07:00
Taha-Mahmoodi 7f7fb7d898 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 17:55:49 +04:30
BFlat 332b63a10b Merge pull request #6591 from dotCooCoo/fix/web-heavy-filter-limit-doc
Plug-ins: the web build's heavy filter runs stop at the 300 s limit too
2026-11-11 20:24:06 +07:00
Taha-Mahmoodi fdb80de56e Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 17:51:23 +04:30
BFlat 2703633064 Merge pull request #6589 from ruchirguitar/fix/6502-ai-layer-colour-index
#6502: .ai layer colour index follows the file's numbering
2026-11-11 20:20:00 +07:00
Taha-Mahmoodi 4c61e767db Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 17:45:13 +04:30
BFlat 3f8b10afdf Merge pull request #6588 from dotCooCoo/fix/rasterize-side-rounding
Rasterize: art that rounds to 32,768 pixels a side is no longer refused
2026-11-11 20:13:57 +07:00
Taha-Mahmoodi a724fc37ec Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 17:39:26 +04:30
BFlat f242b0752f Merge pull request #6590 from dotCooCoo/fix/text-style-leading-strict
Type: text.setStyle refuses a leading with trailing text
2026-11-11 20:08:46 +07:00
Taha-Mahmoodi e851a3f912 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 17:15:03 +04:30
dotCooCoo 08efd91360 Effects: a pasted SVG filter is not renamed to a name the document's effects use
Paste renamed a pasted SVG filter to a name no filter of the document
held, but an effect could still use that name, for example after its
filter was deleted. Defining a filter of that name later changed both
effects. Paste now also skips the names the document's effects use,
read only when a pasted filter needs a new name.

A new name with a tab, line feed or carriage return was written into
the filter's id as is, which XML reads as a space, so the id no longer
matched the effect's name. svg_filter::with_id now writes those
characters as character references, and paste takes a name only when
the filter's id reads back as that name.
2026-11-11 04:44:54 -08:00
BFlat a2e34903e9 Merge pull request #6577 from dotCooCoo/fix/script-rethrown-error-place
Scripts: an error $.evalFile could not run, caught and thrown again, is reported where it was thrown again
2026-11-11 19:44:23 +07:00
BFlat 3af2b09d9c Merge pull request #6587 from SofiaAFigueredo/fix/4343-blob-brush-round-tips-preview
Blob Brush: a round tip's preview is the outline of the area, round at both ends (#4343)
2026-11-11 19:44:14 +07:00
Taha-Mahmoodi a990a6fc45 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:59:07 +04:30
dotCooCoo be960fa28c Plug-ins: the web build's heavy filter runs stop at the 300 s limit too
Docs: docs/plugins.md said the instruction budget alone bounds a heavy
filter run on the web. The web build now also checks the run's 300 s
wall-clock limit.
2026-11-11 04:28:15 -08:00
BFlat 58c37a28e9 Merge pull request #6580 from dotCooCoo/fix/menu-list-recent-read-root
MCP: ui.menu.list leaves out recent files outside the read roots
2026-11-11 19:27:56 +07:00
Taha-Mahmoodi 47ad98a4f0 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:54:13 +04:30
dotCooCoo 07664847bd Type: text.setStyle refuses a leading with trailing text
`leading: "12abc"` set 12 pt leading and returned success, while `size`
and `tracking` in the same command refused trailing text. `leading` now
reads its value with `length_given`, so a string must be a whole number
or a length with a unit. The error message is unchanged.
2026-11-11 04:24:11 -08:00
BFlat 5d5ce999d7 Merge pull request #6586 from dotCooCoo/fix/pen-escape-ends-only-active-path
Pen: one Escape after deselecting the path being drawn ends something else
2026-11-11 19:23:09 +07:00
ruchirguitar 68ff19f0f1 Merge remote-tracking branch 'origin/main' into fix/6502-ai-layer-colour-index
# Conflicts:
#	docs/file-format-parity.md
2026-11-11 17:52:50 +05:30
Taha-Mahmoodi b9ccfdc072 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:45:59 +04:30
BFlat 8ea341d57f Merge pull request #6579 from dotCooCoo/fix/legacy-ai-flatten-side-limit
Legacy .ai export: a long transparent image is flattened whole
2026-11-11 19:15:04 +07:00
BFlat dab8b9a494 Merge pull request #6584 from dotCooCoo/fix/web-plugin-budget-clock
Plug-ins: the web build times the first-view budget and each run's limit
2026-11-11 19:14:55 +07:00
Taha-Mahmoodi 420afedb0f Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:41:50 +04:30
BFlat df081c52fa Merge pull request #6581 from jmverges/fix/6472-ai-save-type-stroke-join
.ai save: stroked type keeps its cap, join and miter limit
2026-11-11 19:10:17 +07:00
Taha-Mahmoodi f72c2560e1 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:36:45 +04:30
BFlat e8a570cb0e Merge pull request #6578 from dotCooCoo/fix/print-bitmap-side-limit
Print: Print as Bitmap prints all of a page longer than 32,768 pixels
2026-11-11 19:05:50 +07:00
Taha-Mahmoodi 83db0b8991 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:31:04 +04:30
dotCooCoo 80b452ad6c Rasterize: art that is exactly 32,768 pixels a side at the resolution is accepted
The side limit compared the region's height in points times the scale
with 32,768. Far from the origin the snapped region can come back a
fraction of a pixel over, so art that the renderer draws at exactly
32,768 pixels was refused (a rectangle at y = 100,000 rasterized at
400 ppi). The check now uses the renderer's own rounded pixel width and
height.
2026-11-11 04:00:39 -08:00
BFlat a5a42e45ac Merge pull request #6576 from dotCooCoo/fix/pasted-svg-filter-size-limit
Effects: a pasted SVG filter at the size limit still draws under its new name
2026-11-11 19:00:06 +07:00
dotCooCoo c8475771b9 Merge main into fix/script-rethrown-error-place 2026-11-11 03:59:08 -08:00
SofiaAFigueredo 334a93277a Merge remote-tracking branch 'upstream/main' into fix/4343-blob-brush-round-tips-preview
# Conflicts:
#	docs/ui-parity.md
2026-11-11 08:58:18 -03:00
SofiaAFigueredoandClaude Sonnet 5.5 478bc4d408 Blob Brush: a round tip's preview is the outline of the area, round at both ends (#4343)
While painting, a round Blob Brush showed a line as wide as the brush, which ends
square, though the stroke it adds is round at both ends. Only an angled or flattened
tip showed the outline of the area. The Blob Brush now shows that outline whatever
its roundness (blob_area, which path.blob's stroke matches).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 08:57:09 -03:00
Taha-Mahmoodi 076d68663f Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:21:58 +04:30
BFlat 4fc8517215 Merge pull request #6574 from dotCooCoo/fix/graph-labels-empty-middle-line
Graphs: centered labels with an empty middle line stay centered
2026-11-11 18:51:23 +07:00
Taha-Mahmoodi 6b0d11d772 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:15:46 +04:30
BFlat c443a25016 Merge pull request #6569 from dotCooCoo/feat/script-strict-on
Scripts: #strict on runs the script with strict write checks instead of refusing it
2026-11-11 18:45:03 +07:00
dotCooCoo 4cde1aaa1f Pen: Escape after the path is deselected ends something else
The Pen and the Smart Pen reported a path being drawn to Escape for as
long as they remembered the path, even after Deselect or Undo left it
unselected. That Escape then ended nothing, and isolation mode or a
rotated view needed a second press. Both tools now report the path only
while they would go on drawing it, as the Curvature tool does.

Follows #6405
2026-11-11 03:44:25 -08:00
Taha-Mahmoodi 4096efa96d Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:11:15 +04:30
dotCooCoo c03fe29ad8 Plug-ins: the web build times the first-view budget and each run's limit
The web build had no clock for plug-in runs, so its first view deferred
every plug-in live effect until Effect > Refresh Deferred Effects, and a
run's wall-clock limit was not enforced there. The deferrals clock and
the run deadline now read `web_time::Instant`, which is the system's
monotonic clock on the desktop and the page's `performance.now()` in the
web build. The web's first view now shares the same 2,000 ms budget, and
its runs stop at the 5 s, 60 s and 300 s limits as on the desktop.

Docs: docs/plugins.md, docs/mcp.md, docs/target-app-parity.md.
2026-11-11 03:41:05 -08:00
BFlat 0398c85b14 Merge pull request #6575 from dotCooCoo/fix/opened-thread-composite-fonts
Type: an opened file flows its threads in its own composite fonts
2026-11-11 18:40:32 +07:00
dotCooCoo 1677170333 Scripts: a marked error a finally block leaves by return, break or continue is collected
A marked host error whose finally block was left by return, break or
continue kept its entry, and its error object, until the run ended. A
script that discarded many of them reached the heap limit. Each entry
now records the stack slot that holds its exception, and entries whose
slot no longer holds it are removed before the next exception is handled
and before each collection.
2026-11-11 03:40:02 -08:00
Taha-Mahmoodi a947eb60eb Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:06:52 +04:30
BFlat 4483fcfaa7 Merge pull request #6572 from dotCooCoo/fix/command-sweep-path-params
Tests: the command sweep sends file and folder params only into its temp folder
2026-11-11 18:35:45 +07:00
BFlat 7e9633e3cb Merge pull request #6573 from dotCooCoo/fix/rasterize-side-limit
Rasterize: art longer than 32,768 pixels at the resolution is refused, not cut off
2026-11-11 18:35:36 +07:00
Taha-Mahmoodi 610ec1a13f Merge remote-tracking branch 'origin/main' into feat/glyph-alternates
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-11 15:57:38 +04:30
jmvergesandClaude Opus 5.5 8b39cbc324 .ai save: stroked type keeps its cap, join and miter limit
The text document writer wrote a type stroke's paint and weight but not
its cap, join or miter limit, which .ai import reads since #6500 (keys
61, 62 and 64). A file saved here and opened again came back with butt
caps, miter joins and a miter limit of 10, and the save reported those
attributes as left out. A stroked run now writes the three keys,
numbered as PostScript numbers caps and joins, with the miter limit as
import takes it back (1 to 500, else 10), and they no longer count as
lost. A run without a stroke no longer counts them as lost either: they
draw nothing.

Follow-up to #6472.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 11:25:55 +00:00
BFlat 212bc9f837 Merge pull request #5457 from Taha-Mahmoodi/fix/ruler-double-click-guide
Fix #5239: double-clicking a ruler adds a guide there
2026-11-11 18:24:56 +07:00
Taha-Mahmoodi e43404d945 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 15:53:35 +04:30