Commit Graph
11556 Commits
Author SHA1 Message Date
Taha-Mahmoodi 0857a6ccba Pin normalization regression to its aliased glyph font 2026-11-12 16:22:10 +04:30
Taha-Mahmoodi 63eacbd94a Fix glyph browser reset, variation and insertion behavior 2026-11-12 16:04:52 +04:30
Taha-Mahmoodi 9624b29dad Merge main into contextual glyph alternates 2026-11-12 15:56:45 +04:30
BFlat 4306a1d1fb Merge pull request #6808 from dotCooCoo/feat/stencil-bridges
Cutting Tools: Stencil Bridges keeps the islands of a stencil attached
2026-11-12 18:19:57 +07:00
BFlat 557093ebcd Merge pull request #6837 from dotCooCoo/fix/vertical-point-to-area-keeps-place
Type: Convert To Area Type and Convert To Point Type keep vertical type in place
2026-11-12 18:19:41 +07:00
BFlat a8879b9fb8 Merge pull request #6760 from dotCooCoo/feat/brushes-bristle-library
Brushes: built-in Bristle Brushes library with one bristle brush for each tip shape
2026-11-12 18:19:32 +07:00
BFlat f4df78ef4a Merge pull request #6790 from dotCooCoo/feat/hpgl-export
File formats: HP-GL (.plt) plots export for pen plotters and cutters
2026-11-12 18:19:22 +07:00
BFlat 65fb71fff5 Merge pull request #6836 from dotCooCoo/fix/symbol-redefine-drops-undrawn-paints
Symbols: redefining a dynamic symbol drops paints its new objects do not draw
2026-11-12 18:19:10 +07:00
BFlat aa990cf58e Merge pull request #6817 from dotCooCoo/feat/revolve-classic
3D (Classic): Revolve (Classic) sweeps a profile with Angle, Cap and Offset and the classic surfaces
2026-11-12 18:18:59 +07:00
BFlat bdea9ac39a Merge pull request #6822 from dotCooCoo/feat/gradients-holographic
Swatch libraries: Gradients › Holographic adds iridescent foil and glow gradients
2026-11-12 18:18:50 +07:00
BFlat 8e71a11551 Merge pull request #6831 from dotCooCoo/perf/deferrals-refresh-sets
Plug-ins: refreshing deferred effects no longer takes time in the square of the number of stages
2026-11-12 18:18:40 +07:00
BFlat 24905d721c Merge pull request #6839 from dotCooCoo/fix/script-targetengine-error-site
Scripts: an error in a function from an earlier #targetengine run names that run's file and line
2026-11-12 18:18:31 +07:00
BFlat 14c764218f Merge pull request #6840 from dotCooCoo/fix/tab-stops-limit
Tabs: the ruler and Repeat Tab stop at 256 tab stops, and a paragraph with more can lose them
2026-11-12 18:18:21 +07:00
BFlat b6e58f728e Merge pull request #6667 from slafebre/fix/5111-kern-paragraph-start
Fix #5111: kerning at the caret before a line's first character moves it
2026-11-12 18:18:10 +07:00
Taha-Mahmoodi 4130ba226d Merge remote-tracking branch 'origin/main' into feat/glyph-alternates
# Conflicts:
#	docs/target-app-parity.md
2026-11-12 15:18:46 +04:30
BFlat 1467b71f0d Merge pull request #6850 from storytold/fix/revert-6656
Revert #6656: it breaks a #6785 save-reply test on main
2026-11-12 17:20:45 +07:00
bflatastic 0f65f6d3f4 Revert "Merge pull request #6656 from dotCooCoo/fix/inspect-library-ids-whole"
This reverts commit 3ed0dc64a8, reversing
changes made to 70ba41bb2b.
2026-11-12 16:35:41 +07:00
BFlat 61650e44a2 Merge pull request #6814 from dotCooCoo/feat/brush-replace-art
Brushes: Alt-drag art onto a brush to replace its art
2026-11-12 16:02:52 +07:00
BFlat 87c0d5cb5e Merge pull request #6826 from dotCooCoo/feat/3d-classic-rotate
3D (Classic): Rotate (Classic) turns flat art in 3D with the No Shading and Diffuse surfaces
2026-11-12 16:02:41 +07:00
BFlat 744c37d12f Merge pull request #6669 from dotCooCoo/feat/dynamic-text-release-path
Type: Release Type on a Path keeps the size Dynamic Text drew the type at
2026-11-12 16:02:25 +07:00
BFlat 183b2ed7e4 Merge pull request #6770 from dotCooCoo/feat/learn-panel
Learn: a Learn panel lists tutorials by skill, opened from Explore tutorials on the app bar
2026-11-12 16:02:15 +07:00
BFlat 5a215aaece Merge pull request #6828 from dotCooCoo/fix/recovery-left-copy-marker
Data Recovery: another app leaves a copy alone until its app writes it again
2026-11-12 16:02:02 +07:00
BFlat 3ed0dc64a8 Merge pull request #6656 from dotCooCoo/fix/inspect-library-ids-whole
MCP: a hidden library's shown id names it in requests, and replies hide its path wherever it appears
2026-11-12 16:01:54 +07:00
BFlat 70ba41bb2b Merge pull request #6819 from dotCooCoo/fix/ids-without-selection-registry-flake
Tests: the id and ids comparisons leave plug-in effects out of effect.list's catalog
2026-11-12 16:01:45 +07:00
BFlat 8448e5c18f Merge pull request #6788 from dotCooCoo/feat/e4x-xml-xpath
JS: XML and XMLList xpath evaluates XPath 1.0 expressions
2026-11-12 16:01:37 +07:00
BFlat 6c5dd39521 Merge pull request #6823 from Hamza0101/fix/stroke-set-group-own-stroke
Stroke options on a group with its own stroke edit that stroke (#6739)
2026-11-12 16:01:28 +07:00
dotCooCoo 843443aecc Merge main into perf/deferrals-refresh-sets 2026-11-12 00:41:09 -08:00
dotCooCoo f4384486ca Merge main into feat/gradients-holographic 2026-11-12 00:41:03 -08:00
dotCooCoo aba45b7249 Merge main into feat/brushes-bristle-library 2026-11-12 00:40:51 -08:00
dotCooCoo 044c8047f6 Scripts: an error in code an earlier #targetengine run compiled names that run's file and line
A function an earlier run of a named engine defined was reported without
a line, column or file when it threw in a later run. The realm now gives
each source a tag that stays the same from run to run (Realm::error_tag,
Realm::script_tag), and no two sources share one once the tags run out.
Each named engine keeps the source maps of its runs' scripts, included
files and $.evalFile files, within 8 MiB, dropping the oldest first, and
an error in kept code is reported at that file, line and column. The
report's name and the console line keep the calling run's name. For an
earlier script given as source, file is that run's name.

Docs: docs/mcp.md (Script engines), script.run params text,
docs/target-app-parity.md.
2026-11-12 00:39:41 -08:00
dotCooCoo e68cbee162 3D (Classic): format the transparent-gradient test; list Revolve (Classic) as shipped
The 3D and Materials row of docs/target-app-parity.md names Revolve
(Classic) with its options and surfaces among what ships, and its
evidence names the tests that cover it.
2026-11-12 00:39:05 -08:00
Sven Lafebre f757f9ef43 Merge remote-tracking branch 'origin/main' into fix/5111-kern-paragraph-start
# Conflicts:
#	docs/target-app-parity.md
2026-11-12 09:29:30 +01:00
Sven Lafebre ab17837cba Merge remote-tracking branch 'origin/main' into fix/5111-kern-paragraph-start
# Conflicts:
#	docs/target-app-parity.md
2026-11-12 09:24:22 +01:00
dotCooCoo 1c3c3e81dd Type: Convert To Area Type and Convert To Point Type keep vertical type in place
Vertical type lays its lines out in line space and turns them a quarter turn
into text space. Convert To Area Type built the frame from line-space line
edges mixed with text-space bounds, so vertical point type moved (a 12 pt line
at (295.44, 40) went to (320.8, 28)). Convert To Point Type placed the new
origin in line space, so vertical area type moved down its column.

Both conversions now work out the frame or origin in line space and map it
through the layout's line transform. Horizontal type is unchanged.
2026-11-12 00:21:48 -08:00
dotCooCoo 87ab5b445f HP-GL export: the writer refuses a bad curve tolerance or more than 255 pens
A tolerance outside 0.01 to 10 points, or one that is not finite, and a pen table of more than 255 colors are errors instead of being clamped or cut short. document.export already refuses both.
2026-11-12 00:21:44 -08:00
dotCooCoo ee524f06c9 Tabs: text.tabs.set can shrink a paragraph that holds more than 256 stops
text.tabs.set takes a list of more than 256 stops when every paragraph it
targets already holds at least that many, so a paragraph loaded with more
stops can lose them one at a time (the Tabs panel's Delete Tab). Any
other list of more than 256 stops is still refused, counted as supplied
before stops at one position merge.

Docs: docs/mcp.md.
2026-11-12 00:19:39 -08:00
dotCooCoo a6ff24d0c4 Tabs: the ruler and Repeat Tab stop at 256 tab stops
With 256 stops, a click on an empty part of the Tabs panel's ruler adds
no stop and shows "at most 256 tab stops" in the status bar; the stops
and the selection stay as they were. Repeat Tab adds copies only up to
256 stops and shows the same message when it stops early. Before, both
built a longer list that text.tabs.set refused, so nothing changed and
no message showed.
2026-11-12 00:19:38 -08:00
dotCooCoo 175f51827d Symbols: redefining a dynamic symbol drops paints its new objects do not draw
When a dynamic symbol is redefined or edited, each instance kept every
appearance change whose path still named an object, even when that
object is now one that draws no fill or stroke of its own (an image, a
blend, a mesh) or a symbol instance given a gradient or pattern fill.
symbol.instance.setAppearance refuses such a paint, but the change stayed
on the instance and still counted as a color the document uses.

Fitting the changes to the new art now also clears a fill or stroke the
object at that path does not draw, and drops a change left empty.
2026-11-12 00:18:05 -08:00
BFlat eb608bb8b5 Merge pull request #6813 from dotCooCoo/feat/brush-place-art
Brushes: drag a brush onto the canvas to place a copy of its art
2026-11-12 15:14:18 +07:00
BFlat edeca27469 Merge pull request #6785 from dotCooCoo/fix/read-roots-save-export-results
MCP: save, export and package replies leave out paths outside a confined client's read roots
2026-11-12 15:14:09 +07:00
BFlat bf9c8b4e59 Merge pull request #6806 from dotCooCoo/fix/recovery-missing-folder
Data Recovery: a folder error names the folder that is missing or is not a folder
2026-11-12 15:13:59 +07:00
BFlat 1a7aa834db Merge pull request #6786 from dotCooCoo/fix/save-export-show-every-note
Save and Export: the status bar's hover lists every note
2026-11-12 15:13:51 +07:00
BFlat dcab893acd Merge pull request #6791 from dotCooCoo/feat/styles-painted-sketched-library
Graphic Styles: a built-in Painted and Sketched library adds watercolor, charcoal and ink styles
2026-11-12 15:13:39 +07:00
BFlat fd4bf3999c Merge pull request #6810 from dotCooCoo/fix/shortcut-opens-menu-dialog
Shortcuts: a single-key shortcut opens its menu item's slider or dialog
2026-11-12 15:13:30 +07:00
BFlat 0d550c6e6d Merge pull request #6796 from dotCooCoo/feat/patterns-grit-textures
Swatch libraries: Patterns › Grit Textures adds seamless grain, speckle and stipple patterns
2026-11-12 15:13:22 +07:00
BFlat 0ad57dc872 Merge pull request #6811 from dotCooCoo/fix/effect-refresh-deferred-nested
MCP: effect.refreshDeferred takes objects in symbol, pattern, brush and mask art
2026-11-12 15:13:13 +07:00
BFlat c8f31dd8a9 Merge pull request #6804 from dotCooCoo/fix/script-checker-name-escapes
Script checker: names with escaped characters are read as names
2026-11-12 15:13:04 +07:00
BFlat ba2aefb5dd Merge pull request #6815 from dotCooCoo/feat/para-style-options-tabs
Paragraph Styles: Style Options edits a style's tab stops
2026-11-12 15:12:55 +07:00
dotCooCoo 2c9f5a6a11 HP-GL export: an HP-GL plot past 16-bit coordinates gets a warning
Coordinates outside -32,768 to 32,767 plotter units (about 82 cm from the origin) are written as they are, with a warning that older devices may not read them. HP-GL/2 plots are not checked against this range.
2026-11-12 00:12:54 -08:00
BFlat 6121418e0c Merge pull request #6783 from dotCooCoo/fix/js-flat-charges-heap
Scripts: operators, JSON.stringify and join count a flattened string against the heap limit
2026-11-12 15:12:46 +07:00