Commit Graph
3719 Commits
Author SHA1 Message Date
dotCooCoo f526c5310c JS: XML and XMLList xpath evaluates XPath 1.0 expressions
xml.xpath(expression[, variables]) evaluates an XPath 1.0 expression
(https://www.w3.org/TR/1999/REC-xpath-19991116/) with the XML value as
the context node and returns the selected nodes as an XMLList, in
document order and without repeats. On an XMLList the expression runs
on each element in turn, and the results are joined.

- All 13 axes and the 27 core functions. id() selects nothing, since
  E4X trees carry no DTD data.
- Each property of `variables` binds the variable of its name. A
  prefix in a name test resolves through the context element's
  in-scope namespaces; `xml` is always bound.
- An expression that breaks the grammar gives a SyntaxError. An
  unknown function, a wrong argument count, an unbound prefix or
  variable, a result that is not a node-set, and a result that holds
  the root or a namespace node give a TypeError.
- The parser and the evaluator keep their state on their own stacks,
  so expressions of any depth use no native stack; nesting past
  Options::max_depth gives "nesting too deep". Traversal stacks, node
  lists, strings and the values that string functions build count
  against the heap limit, and every node visited and string read takes
  fuel.

Docs: docs/target-app-parity.md (E4X line), crate doc in lib.rs.
2026-11-11 21:01:32 -08:00
BFlat aa4657e1ce Merge pull request #6704 from dotCooCoo/fix/shape-tool-handles-scale
Shape tools: a drag on a bounding-box handle scales the selection
2026-11-12 11:43:06 +07:00
BFlat dec6717379 Merge pull request #6726 from dotCooCoo/feat/hpgl-import
File formats: HP-GL (.plt) plot files open and place
2026-11-12 11:42:46 +07:00
BFlat b93b6d6a4f Merge pull request #6729 from dotCooCoo/feat/control-bar-align-to
Control bar: an Align To menu follows the Align buttons
2026-11-12 11:42:38 +07:00
BFlat b945662f75 Merge pull request #6700 from dotCooCoo/fix/script-files-followups
Scripts: File and Folder exists checks the kind, encode keeps slashes, every call is counted
2026-11-12 11:42:26 +07:00
BFlat 3baa943174 Merge pull request #6693 from dotCooCoo/fix/pdfa-14-long-pages
PDF: a PDF/A-2b file at PDF 1.4 writes long pages as PDF 1.6 with a UserUnit
2026-11-12 11:42:17 +07:00
BFlat cd92345707 Merge pull request #6759 from dotCooCoo/fix/js-tosource-property-flags
Scripts: toSource refuses read-only, non-configurable and non-extensible data it cannot write back
2026-11-12 11:42:09 +07:00
BFlat d843a4f1ec Merge pull request #6670 from dotCooCoo/fix/plugin-put-back-result
Plug-ins: an update left in the store by a failed put-back turns a disabled plug-in on
2026-11-12 11:42:01 +07:00
BFlat 5e181e2aec Merge pull request #6699 from dotCooCoo/fix/links-read-roots
MCP: links.list, links.check, links.info and document.open leave out paths outside the read roots
2026-11-12 11:41:52 +07:00
BFlat 95325e8ef0 Merge pull request #6694 from dotCooCoo/feat/char-style-options-tcy-offsets
Type: Character Style Options sets Tate-chu-yoko Up/Down and Left/Right
2026-11-12 11:41:41 +07:00
BFlat d349c4b586 Merge pull request #6775 from dotCooCoo/feat/image-remove-background
Image Tools: Remove Background clears an image's background in its pixels
2026-11-12 11:41:32 +07:00
BFlat 3ba9ae2b47 Merge pull request #6738 from christianlappin/codex/fix-6404-eyedropper-text-scale
Fix Eyedropper font size and horizontal scale on transformed text
2026-11-12 11:41:23 +07:00
BFlat ea3a4ec373 Merge pull request #3145 from adambelis/feat/width-smooth-profile
Width profiles run smooth between their points
2026-11-12 11:41:15 +07:00
dotCooCoo f65f3029a6 Image Tools: Remove Background clears an image's background in its pixels
A new built-in add-on, Image Tools (Object › Plug-ins › Image Tools),
adds Remove Background… (`addon.image.removeBackground`). It makes the
background of the selected images transparent by lowering the alpha of
their own pixels, in one undo step, with no service or model. The
background is the most common color along the image's edges, the
average of the image's corners, or colors the user picks. Contiguous
(on by default) clears it only where it reaches in from an edge; off,
it is cleared wherever it is. Tolerance and Softness (0 to 100, 10 by
default) set how near a color must be to be cleared and the band over
which pixels fade out. Match measures that nearness as the RGB
distance or as the largest difference on one channel. It is a
VectorCraft addition.

- The image stays an image: an embedded PNG with alpha, the source's
  ICC profile and resolution, and 16 bits or gray when the source is.
  A linked image is embedded and keeps its Placement Options.
- When the edges hold at least as many clear pixels as pixels of their
  most common color, edge mode clears nothing, so a second run leaves
  the subject alone. Corner mode leaves clear corners out of the
  average and clears nothing when all four are clear.
- With Match set to Each Channel, a tolerance of t / 255 × 100 clears
  the colors within t 8-bit steps on every channel.
- A CMYK image, a linked image that shows its preview, an image that
  would need more than the decode allowance (checked from its header)
  and a result with no pixel left are refused, and the document stays
  as it was. When no pixel changes, no undo step is added. The result
  reports `cleared`, the pixels made fully clear.
- Picked colors are hex colors, with or without `#`, or black, white,
  red, green or blue.
- The dialog opens with Preview off; with Preview on, the canvas shows
  the result, and Cancel puts the image back. While the dialog
  previews, the session keeps the images' decoded pixels (at most
  128 MiB, 32 MiB in the web app) so each preview step does not decode
  them again, and releases them when the dialog closes with OK or
  Cancel. A run that is not a preview step keeps nothing.

Docs: docs/mcp.md (Image Tools add-on), docs/target-app-parity.md.
2026-11-11 19:47:28 -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
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
dotCooCoo be4fd1c23e Merge main into fix/plugin-put-back-result 2026-11-11 18:55:34 -08:00
dotCooCoo 19ed0889b1 Merge main into fix/script-files-followups
# Conflicts:
#	crates/engine/src/script/files.rs
2026-11-11 18:48:18 -08:00
dotCooCoo c0289333e1 Merge main into feat/control-bar-align-to 2026-11-11 18:47:46 -08:00
dotCooCoo c02f2a5d75 Merge main into fix/links-read-roots 2026-11-11 18:46:20 -08: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
dotCooCoo 09c35cce38 Merge main into feat/char-style-options-tcy-offsets 2026-11-11 18:45:03 -08:00
dotCooCoo b403fe230f Merge main into fix/pdfa-14-long-pages 2026-11-11 18:43:27 -08: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
Christian Lappin 4e3ebb2810 M3: preserve effective text dimensions in Eyedropper picks (#6404) 2026-11-11 21:40:10 -05: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
dotCooCoo 982cf2ef5a Merge main into feat/hpgl-import 2026-11-11 18:38:00 -08:00
dotCooCoo 98ad53e799 Merge main into fix/js-tosource-property-flags 2026-11-11 18:34:29 -08:00
dotCooCoo d28b72a358 Scripts: toSource refuses read-only, non-configurable and non-extensible data it cannot write back
A literal makes an extensible object whose properties are writable and
configurable, and an array whose length is writable. toSource wrote a
property defined with writable or configurable false, a sealed, frozen or
non-extensible object or array, and an array with a read-only length as an
ordinary literal, so evaluating the text gave an open value.

toSource now throws a TypeError for each of these, at any depth, as it
already does for getters, hidden properties and other prototypes.
Properties defined with every flag on are written as before.
2026-11-11 18:33:42 -08: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
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