Commit Graph
3678 Commits
Author SHA1 Message Date
dotCooCoo f3b089f83f Merge main into feat/styles-textures-library 2026-11-11 19:59:30 -08:00
BFlat 6b8be09699 Merge pull request #6688 from dotCooCoo/fix/plugin-call-reprepare-test
Edit: a command that ends a drag keeps its unapplied preview
2026-11-12 10:06:12 +07:00
BFlat bac3be03cb Merge pull request #6716 from dotCooCoo/fix/3d-fill-walls-behind-stroke
3D: a stroke's walls cover the fill's walls at concave corners
2026-11-12 10:03:08 +07:00
dotCooCoo 2649f20c8e Merge main into feat/styles-textures-library 2026-11-11 18:55:43 -08:00
BFlat 765bd30783 Merge pull request #6744 from dotCooCoo/feat/color-show-recent-colors
Color: the panel menu's Show Recent Colors shows or hides the Recent Colors row
2026-11-12 09:55:35 +07:00
BFlat eb35bd6b3b Merge pull request #6754 from dotCooCoo/feat/3d-shadows
3D and Materials: shadows behind or below the object, with Distance and Bounds
2026-11-12 09:45:11 +07:00
BFlat 3859e9b5ff Merge pull request #6748 from dotCooCoo/perf/gstyle-apply-shared-appearance
Graphic Styles: applying a style shares one appearance across the objects
2026-11-12 09:40:20 +07:00
BFlat aeffe1d004 Merge pull request #6731 from dotCooCoo/feat/actions-insert-menu-item
Actions: Insert Menu Item adds a menu command to an action
2026-11-12 09:40:12 +07:00
BFlat 01efd56ee3 Merge pull request #6752 from dotCooCoo/fix/open-shows-every-import-note
Open: the status bar names what the file left out first, and its hover lists the notes
2026-11-12 09:40:03 +07:00
BFlat 7dd71a6972 Merge pull request #6708 from dotCooCoo/feat/mojikumi-line-end-fit
Type: Mojikumi spacing at line ends counts when lines break
2026-11-12 09:32:21 +07:00
Dylan M. Taylor a971a14898 Fix Flatpak updates and bump to 0.24.1 (#6649)
* fix(flatpak): allow release checks and self-update helpers

* test: keep Flatpak permission parsing within strict Clippy rules

* chore: bump version to 0.24.1 for the Flatpak update fix

* test: locate CLI binaries after Nextest archive relocation

* docs: explain the Flatpak update permission bootstrap
2026-11-11 21:30:40 -05:00
dotCooCoo fabc28370f Merge main into fix/plugin-call-reprepare-test 2026-11-11 18:29:37 -08:00
BFlat 588f1678e3 Merge pull request #6750 from dotCooCoo/perf/eps-thumbnail-from-preview
EPS export: the thumbnail is made from the preview instead of drawing the document again
2026-11-12 09:27:26 +07:00
dotCooCoo 4795701122 Merge main into feat/styles-textures-library 2026-11-11 18:27:09 -08:00
dotCooCoo 2d29087ac2 Graphic Styles: built-in Textures library with grain, canvas, craquelure and tile styles
Window › Graphic Style Libraries › Textures, after Hand-Drawn, holds eight
styles that paint their fills and strokes with the texture effects: Fine
Grain (Grain), Canvas Weave and Burlap Sack (Texturizer), Cracked Glaze
(Craquelure), Mosaic Floor (Mosaic Tiles), Quilted Squares (Patchwork),
Leaded Glass (Stained Glass) and Damp Paper (Water Paper). The styles,
their names and their settings are VectorCraft's own.

Each catalog has rows for the library and style names. Docs: docs/mcp.md,
docs/gaps.md, docs/target-app-parity.md.
2026-11-11 18:25:50 -08:00
BFlat 2086ddbab9 Merge pull request #6660 from dotCooCoo/fix/i18n-plugin-limit-messages
i18n: plug-in limit messages are translated in every complete-message catalog
2026-11-12 09:24:03 +07:00
BFlat 6c68e13732 Merge pull request #6655 from dotCooCoo/fix/plugin-approval-ok-delay
Plug-ins: the approval dialog takes OK only once its question was shown for half a second
2026-11-12 09:23:52 +07:00
BFlat c87ba0c5ef Merge pull request #6681 from dotCooCoo/docs/plugin-budget-line-once
Docs: each progress line appears once in the shipped-features evidence list
2026-11-12 09:22:53 +07:00
BFlat 8719585cc6 Merge pull request #6663 from dotCooCoo/feat/script-target-engine
Scripts: #targetengine runs a script in a named engine that keeps its globals
2026-11-12 09:22:45 +07:00
BFlat 9537bd7563 Merge pull request #6684 from dotCooCoo/fix/js-unicode-17-identifiers
JavaScript: characters assigned in Unicode 17 are identifier characters
2026-11-12 09:22:28 +07:00
BFlat d3414f2c75 Merge pull request #6665 from dotCooCoo/fix/custom-toolbar-add-tools
Toolbars: a + button on a new toolbar adds and removes tools from a menu
2026-11-12 09:22:19 +07:00
BFlat ed412fb73b Merge pull request #6661 from dotCooCoo/fix/clipboard-read-time-limit
Clipboard: Linux and BSD reads wait 2 s at most for the app that copied
2026-11-12 09:22:11 +07:00
BFlat 36fa7c561a Merge pull request #6749 from dotCooCoo/fix/edit-guide-params-reject-wrong-types
Commands: Edit, guide and slice params of the wrong type are refused
2026-11-12 09:22:02 +07:00
BFlat 20af18de73 Merge pull request #6687 from dotCooCoo/fix/menu-list-recent-confined
Scripts: opening a macOS menu reads the Scripts folder again
2026-11-12 09:14:22 +07:00
BFlat ac8c60cad4 Merge pull request #6675 from dotCooCoo/fix/plugin-filter-progress-cancel
Plug-ins: a light filter that reports progress runs in the background with Cancel
2026-11-12 09:14:14 +07:00
BFlat 8631f5f1ab Merge pull request #6690 from dotCooCoo/feat/psd-open-layers
PSD import: File › Open converts a PSD file's layers to objects
2026-11-12 09:13:54 +07:00
BFlat 9a4be17f0c Merge pull request #6680 from dotCooCoo/fix/pdf-points-option-pdfa
PDF: the in-points option leaves PDF/A pages within the standard's size limit
2026-11-12 09:13:17 +07:00
BFlat e9960c71a7 Merge pull request #6703 from dotCooCoo/feat/objects-on-path-move-all
Objects on Path: the Move All widget slides every attached object along the path
2026-11-12 09:13:09 +07:00
BFlat 88e6c71ad2 Merge pull request #6696 from dotCooCoo/fix/batch-file-name-row
Actions: Batch shows the data set File Name row only where it applies
2026-11-12 09:11:57 +07:00
BFlat e7a64097a0 Merge pull request #6725 from dotCooCoo/fix/read-roots-other-replies
MCP: library lists leave out paths outside a confined client's read roots
2026-11-12 09:11:19 +07:00
BFlat 53e0969826 Merge pull request #6724 from jmverges/fix/6644-envelope-type-strokes
Envelopes: type's strokes paint at their own weight along the bent outlines
2026-11-12 09:11:09 +07:00
BFlat 25eca9c812 Merge pull request #6711 from dotCooCoo/feat/docinfo-gradient-objects
Document Info: Gradient Objects lists the objects painted with gradients
2026-11-12 09:11:00 +07:00
BFlat f42213ec2c Merge pull request #6707 from dotCooCoo/fix/script-case-variant-folder-refused
Scripts: a missing file outside the script's folder is refused like an existing one
2026-11-12 09:10:34 +07:00
BFlat f1b53928f9 Merge pull request #6736 from dotCooCoo/feat/select-not-pixel-aligned
Select: Object › Not Aligned to Pixel Grid selects paths without the pixel-aligned property
2026-11-12 09:10:13 +07:00
BFlat a7d8a9974c Merge pull request #6719 from dotCooCoo/fix/tabs-indent-targets-story-order
Tabs: indent drags on threaded frames set each story paragraph once, a split paragraph included
2026-11-12 09:10:05 +07:00
BFlat 692818424f Merge pull request #6682 from dotCooCoo/feat/dynamic-text-block
Type: Dynamic Text sets each line of area type to the frame width
2026-11-12 09:09:56 +07:00
BFlat ab4fd17e39 Merge pull request #6727 from dotCooCoo/fix/file-out-param-types
Package, Place, Export: the Package, Place and export commands reject a param of the wrong type
2026-11-12 09:09:46 +07:00
BFlat 6dd99ef1e2 Merge pull request #6741 from dotCooCoo/fix/edit-colors-param-types
Edit Colors: a switch or number of the wrong type is an error instead of the default
2026-11-12 09:09:17 +07:00
BFlat d1a9c5a49c Merge pull request #6728 from dotCooCoo/feat/conic-gradient
Gradients: conic gradients sweep the stops once around the center
2026-11-12 09:09:08 +07:00
BFlat 8f65aaa7fb Merge pull request #6718 from dotCooCoo/fix/issue-6634
Fix #6634: Pen closing drag no longer gives the first anchor symmetric handles
2026-11-12 09:08:12 +07:00
BFlat 358a47c559 Merge pull request #6737 from dotCooCoo/feat/control-bar-options-menu
Control bar: the panel menu turns each group of options on or off
2026-11-12 09:07:47 +07:00
BFlat 0cab083612 Merge pull request #6743 from dotCooCoo/feat/paste-on-selected-artboards
Edit: Paste in Place, in Front and in Back put a copy on each selected artboard
2026-11-12 09:07:36 +07:00
BFlat 5f2592e4fa Merge pull request #6732 from dotCooCoo/fix/plugin-removed-rename-back
Plug-ins: a failed rename back of a removed plug-in's settings is reported and undone later
2026-11-12 09:07:24 +07:00
BFlat 30b8a1e8b5 Merge pull request #6733 from dotCooCoo/feat/symbols-sort-and-list-views
Symbols: the panel menu sorts by name and offers Small and Large List views
2026-11-12 09:07:13 +07:00
BFlat b9d056986d Merge pull request #6734 from dotCooCoo/feat/para-style-options-sections
Paragraph Styles: Style Options edits indents, spacing, composition, hyphenation and justification
2026-11-12 09:07:00 +07:00
dotCooCoo 912610eb60 Open: the status bar names what the file left out first, and its hover lists the notes
After File > Open the status bar showed only the first of the import's
notes. A file whose layers weren't read could give another note first:
the EPS reader adds its note about brushes left out of the Brushes panel
before the note that the file came in as its page, so the status bar
named the brushes and not the page.

The status bar now names the first note that says reading the file left
something out (the notes that make Save ask before writing over the
file), else the first note, and still counts them all. When there are
several, hovering the message lists them in that order, translated where
the catalogs have them, as many as fit in the window and at most 30,
then how many more. Screen readers get the list after the message. The
status bar shows the list only while it shows the open's message. The
open's reply keeps its notes in the import's order.

Docs: docs/control-protocol.md (app.open), docs/target-app-parity.md.
2026-11-11 17:52:53 -08:00
dotCooCoo 73c7c7511b 3D and Materials: shadows behind or below the object, with Distance and Bounds
Revolve, Extrude & Bevel, Inflate and Rotate take a Shadows switch on the
Lighting tab, with Position (Behind Object or Below Object), Distance from
Object (0 to 100%) and Shadow Bounds (10 to 400%), saved in the effect as
shadow, shadowPosition, shadowDistance and shadowBounds.

With shadows on, the first light casts a hard-edged vector shadow of the
solid: every face of every solid of the object projected along the light
onto a plane behind the object (square to the view) or below it (square to
its own vertical axis and turned with it), filled black with the nonzero
rule at 50% times the opacity of the art that casts it, in that art's
blending mode, and drawn behind the solids. Distance moves the plane away
by a share of the object's largest size; Bounds ends the plane at a square
about the foot of the object's center, four times that size across at
100%. No shadow is drawn while Shading is off, when the first light's
intensity is 0, or when it does not reach the plane. A member's opacity
mask and blending mode apply to the part of the shadow it casts. A shadow
is cast from at most 327,680 faces; past that, commands are refused and a
loaded file draws the source path. The canvas, SVG and PDF exports draw the
shadow, and Expand Appearance keeps it as a path. Values out of range are
refused before the document changes.

Docs: docs/three-d.md, docs/mcp.md, docs/effects-parity.md and the
docs/target-app-parity.md evidence list.
2026-11-11 17:50:33 -08:00
dotCooCoo 922c1fcae5 Commands: Edit, guide and slice params of the wrong type are refused
These commands read optional numbers and flags with f64_or and bool_or,
so a value such as "10" or "yes" ran the command with the default. They
now return an error and leave the document, the selection and the undo
history as they were. Omitting a key or giving null behaves as before.

- edit.duplicate, edit.paste, guide.move, object.slice.duplicate: dx, dy
- guide.move: copy
- document.node: summary
- edit.undoGroup.end: cancel
- guide.add: vertical
- guide.select, object.slice.select: toggle
- select.editSaved: delete; newName must be a string
- select.save: name must be a string
- file.close: index must be a non-negative integer
2026-11-11 17:45:42 -08:00
dotCooCoo f3339a47f8 Actions: Insert Menu Item leaves out Image Trace and Pattern, counts recorded steps
Object > Image Trace > Make and Make and Expand, and Object > Pattern >
Make and Edit Pattern, are no longer listed or accepted by
`ui.action.insertMenuItem`. Their menu items do more than run the
command: Image Trace traces off the UI thread with progress and Cancel,
and the Pattern items open the Pattern Options panel. Action playback
runs only the command.

Insert Stop and Insert Menu Item, given a set and action, now count the
steps that the recording in progress adds to that set, so the set as
Stop Playing/Recording leaves it stays within 10,000 steps per action
and 8 MiB as a file.

The command descriptions list every kind of menu item that cannot be
a step.

Docs: docs/mcp.md, docs/target-app-parity.md.
2026-11-11 17:43:32 -08:00
dotCooCoo 4fb98ceacd EPS export: the thumbnail is made from the preview instead of drawing the document again
With a TIFF preview, each EPS file's PNG thumbnail is now the preview
averaged down to the thumbnail's size and composited on white, so
export and Save draw the page once instead of twice. The thumbnail
keeps the size a 128 px render of the page has; a page that fits in
128 px gets the preview's own pixels. Without a preview the thumbnail
is still drawn.

- Rendered::area_resized averages premultiplied pixels over the area
  under each new pixel, weighting edge pixels by the share they cover,
  and returns an error for a 0 side or a buffer that does not match.
2026-11-11 17:32:07 -08:00