Commit Graph
6825 Commits
Author SHA1 Message Date
BFlat 6dff0095ea Merge pull request #4841 from dotCooCoo/fix/dxf-dxf-ellipse
DXF export: ellipses and unevenly scaled circles are written as ELLIPSE
2026-10-31 20:10:07 +07:00
BFlat 6612400fb9 Merge pull request #4839 from dotCooCoo/fix/dxf-dxf-line-entity
DXF export: an open path of one straight segment is written as a LINE
2026-10-31 20:09:52 +07:00
BFlat 40c3519af1 Merge pull request #4842 from dotCooCoo/fix/assemble-keeps-visibility
Outline Stroke, Expand: hidden and locked objects stay hidden and locked
2026-10-31 20:09:38 +07:00
BFlat ce2ca3c017 Merge pull request #4843 from dotCooCoo/fix/select-font-hidden-locked
Find Font: Find leaves out hidden and locked text
2026-10-31 20:09:23 +07:00
BFlat 4094658641 Merge pull request #4844 from dotCooCoo/fix/swatch-delete-plural
Swatches: the delete prompt for several swatches uses each language's plural forms
2026-10-31 20:09:07 +07:00
BFlat 5796c886a4 Merge pull request #4847 from dotCooCoo/fix/docs-mcp-type-underline-fragment
Docs: the type.underline line no longer repeats the end of the sentence before it
2026-10-31 20:08:51 +07:00
BFlat 800c9b9f18 Merge pull request #4848 from dotCooCoo/fix/issue-4837
Fix #4837: the saved color scheme, accent and canvas color show at launch
2026-10-31 20:08:36 +07:00
BFlat d4f8733176 Merge pull request #4859 from dotCooCoo/fix/select-same-fill-live-paint
Select Same: Fill Color from a Live Paint face stays in its Live Paint group
2026-10-31 20:08:22 +07:00
BFlat 40eceb422c Merge pull request #4857 from dotCooCoo/fix/issue-4819
Fix #4819: Convert to Smooth and Corner convert a selected blend's spine
2026-10-31 20:08:07 +07:00
BFlat 31c51b7f45 Merge pull request #4874 from dotCooCoo/fix/issue-4516
Part of #4516: Windows renders start workers only for the cores the process may use
2026-10-31 20:07:53 +07:00
BFlat 2f2b731f03 Merge pull request #4869 from dotCooCoo/fix/issue-4864
Fix #4864: a search pick of an Asset Export command opens the panel
2026-10-31 20:07:37 +07:00
BFlat 257aa3e1f9 Merge pull request #4867 from dotCooCoo/fix/web-shortcut-key-before-text
Shortcuts: in the web build a key-position shortcut uses the key of the same press
2026-10-31 20:07:23 +07:00
dotCooCoo b493e601a9 Docs: leave the DXF row of file-format-parity.md to #4796
The ELLIPSE note stays in docs/gaps.md; the open #4796 rewrites the same file-format-parity.md row.
2026-10-31 19:43:15 +07:00
dotCooCoo 06e8d711ae DXF export: an open path of one straight segment is written as a LINE
An open path with a single straight segment was written as a two-vertex
LWPOLYLINE (POLYLINE before R14). It is now a LINE entity from its start
to its end point. A stroke with a weight in R12, R13 and R14 keeps its
polyline, since a LINE has no width. Closed paths and paths with more
than one segment are unchanged.

Part of #1299.
2026-10-31 19:43:15 +07:00
dotCooCoo 9571ae0a46 Outline Stroke, Expand: hidden and locked objects stay hidden and locked
The art that replaces an outlined or expanded path did not take the
path's hidden, locked or Knockout Shape state. Outline Stroke on a
hidden path, or Expand on a group with a hidden member, made the new art
visible (a filled and stroked path became half visible: the outline
shown, the fill copy hidden), and a locked member's art was unlocked.

The replacement now takes the path's visibility, lock and Knockout Shape
state, and the fill copies and clipping paths inside it are shown and
unlocked, so showing or unlocking the new art shows or unlocks all of it.
This covers Outline Stroke, and Expand's strokes, gradient fills and
pattern fills.
2026-10-31 19:43:15 +07:00
dotCooCoo 9e8e091c86 Find Font: Find leaves out hidden and locked text
select.font (the Find Font dialog's Find button) selected every text
object using the font, including hidden or locked text and text in a
hidden or locked group or layer. It now selects only text that is
visible and unlocked through every group and layer, and not on a locked
artboard. Text on a visible, unlocked template layer is still found. A
font used only by hidden or locked text selects nothing.
2026-10-31 19:43:15 +07:00
dotCooCoo 9dcbe3688e Swatches: the French one-item delete prompt keeps the no-break space before ? 2026-10-31 19:43:15 +07:00
dotCooCoo d0a903d5d7 DXF export: ellipses and unevenly scaled circles are written as ELLIPSE
A closed path of four cubics that is the four-cubic circle under an
affine map (an ellipse, or a circle scaled out of proportion) is written
as a native ELLIPSE in R13 and later, with its center, major axis and
minor to major ratio. The check maps the path back onto the unit circle
and runs the existing circle recognition on it. R12 keeps the existing
fallback, and ellipses with a ratio under 1e-6 stay splines. The ratio
and end parameter are written in full so that a thin ellipse keeps its
size and a whole turn reads back closed.

Part of #1299.
2026-10-31 19:43:15 +07:00
dotCooCoo 541a6c33f0 Swatches: the Ukrainian, Russian and Bosnian delete prompt for 21 or 31 items names swatches and groups
In these languages a count ending in 1 (other than 11) takes the singular form, which read as one swatch or one group. That form now names swatches and groups with the count in parentheses.
2026-10-31 19:43:15 +07:00
dotCooCoo ab2426ca15 Swatches: the delete prompt for several swatches uses each language's plural forms
The confirmation for deleting several swatches and groups now goes
through i18n::tn, as the Graphic Styles prompt does, and each catalog
gives the count-dependent forms in an @plural row.
2026-10-31 19:43:15 +07:00
dotCooCoo f6b79c3f50 Docs: the type.underline line in docs/mcp.md no longer repeats the end of the sentence before it 2026-10-31 19:43:14 +07:00
dotCooCoo 37211078c2 Fix #4837: the saved color scheme, accent and canvas color show at launch
The first UI pass installed the default theme over the one the saved
preferences had applied earlier in the same frame, and later frames saw
the preferences as already applied. Classic, a non-default accent and a
Canvas Color showed as the defaults until a preference changed, and again
after the app took a new graphics context. The first pass now applies the
saved preferences.
2026-10-31 19:43:14 +07:00
dotCooCoo 7860931a3b Select Same: Fill Color from a Live Paint face stays in its Live Paint group
Select > Same > Fill Color and Fill & Stroke from a face of a Live Paint
group now select the matching faces of that group only, and from any
other object they select no Live Paint face. Before, they matched faces
of every Live Paint group and paths outside them alike.
2026-10-31 19:43:14 +07:00
dotCooCoo 9163c22396 Fix #4819: Convert to Smooth and Corner convert a selected blend's spine
With a blend selected, the Contextual Task Bar's Corner and Smooth
buttons failed with "select paths or anchor points", since
`path.convertAnchors` only read paths. They now convert every point of
the blend's spine, as they convert every anchor of a path selected
whole, in one undo step. The key objects stay where they are.

With Direct Selection, the Control bar and the Properties panel now
show their Convert buttons for a selected blend too.
2026-10-31 19:43:14 +07:00
bflatastic da9eaaacf8 Windows cores: test the affinity mask in-process
A test that spawned the test binary with `start /affinity 1` ran while the control server's socket tests held connections; the child inherited them and reset one (idle_expiry_closes_without_writing_a_line failed every full run). The one-core worker count stays covered by `automatic_threads`.
2026-10-31 19:43:13 +07:00
dotCooCoo 4e785b40ce Part of #4516: Windows renders start workers only for the cores the process may use
The renderer sized its worker pool from available_parallelism, which on
Windows counts every processor in the machine, also when the process's
affinity mask allows fewer. A process allowed one core started 8 workers,
and the renderer's flush spun on that core while the workers got no time,
so renders crawled or stalled.

The desktop app and vectorcraft-cli now read the affinity mask at startup
(src/windows_cores.rs, shared) and pass the count to the renderer with
vectorcraft_render::set_usable_cores. With one usable core the renderer
renders on the calling thread.
2026-10-31 18:44:55 +07:00
dotCooCoo 663e691908 Fix #4864: a search pick of an Asset Export command opens the panel
The command palette runs a picked command with no params. Export Assets
then failed with "no assets yet" (or, with assets collected, exported
to no folder), and Remove, Rename and Asset Export Settings failed or
did nothing. Run with no params from the palette, a menu or a shortcut,
these four commands now show the Asset Export panel, and leave it open
when it already shows, docked or floating. Calls with params are
unchanged.
2026-10-31 18:44:53 +07:00
dotCooCoo 2d9ceb8137 Shortcuts: rewrap the typing_presses doc comment 2026-10-31 18:44:50 +07:00
dotCooCoo d3ea958f8f Shortcuts: a modifier key press is never the key that typed a text
In the web build, pressing Shift and then a letter in one frame sends the Shift press, the
letter's text and then the letter's key press. The text paired with the Shift press as the press
before it, so a key-position shortcut looked up Shift instead of the letter, and a held Shift's
repeated presses dropped the text as a repeat. Modifier key presses now never pair with a text.
2026-10-31 18:44:50 +07:00
dotCooCoo 0127739597 Shortcuts: a text with no key press of its own leaves the next keystroke's press to that keystroke's text
A text-only event right before a desktop keystroke in the same frame ([text, key, text]) took the key press as the press after it, which left the keystroke's own text with no key. A text now takes the press after it only when every later text in the same run of alternating texts and presses has a press after it too, as in the web build's [text, key] order; otherwise the press goes to the text after it.
2026-10-31 18:44:50 +07:00
dotCooCoo 8579aa07e3 Shortcuts: in the web build a key-position shortcut uses the key of the same press
eframe's web build sends a keystroke's text before its key press. On a
layout without Latin letters, the one-key shortcuts paired each text with
the last key press before it, so in the web build a lone keystroke had no
key and ran no shortcut, and a second keystroke in the same frame used
the first one's key.

Each text now takes the press right before it, unless an earlier text in
the frame took that press, and otherwise the press right after it. The
one-key shortcuts and the shortcut names a tool sees while it is busy use
the same pairing. The desktop order (key, then text) pairs as before.
2026-10-31 18:44:50 +07:00
Dylan M. Taylor cf0d4d4a3f Merge pull request #4807 from aiongg/docs-tidy
docs: tidy agent, contributor and asset docs
2026-10-31 01:06:55 -04:00
Dylan M. Taylor 0b454d22a0 Merge pull request #4814 from aiongg/update-result-dialog
Updates: shared check-result dialog from craft-update
2026-10-31 01:06:08 -04:00
aiongg 91e97c92dd updates: show check results with craft-update's CheckResultDialog 2026-10-31 04:42:43 +00:00
aiongg ffad6cc20e docs: tidy wording 2026-10-31 04:25:47 +00:00
aiongg 8ae1f7dae6 docs: tidy agent, contributor and asset docs 2026-10-31 04:17:23 +00:00
Brandon ThomasandClaude Opus 5.5 bcebabe3f8 Release 0.19.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.19.0
2026-10-30 23:26:38 -04:00
Brandon ThomasandClaude Opus 5.5 e27f3b9968 Flatpak bundle: skip the debuginfo pass manifest-wide (runner has no eu-strip)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 23:26:30 -04:00
BFlat 1660cd1b41 Merge pull request #4781 from storytold/fix/shared-edge-panel-fields
Path Precision Tools: the Shared Edges fields read like the others in the panel
2026-10-31 07:57:58 +07:00
bflatastic 41508e7b24 Path Precision Tools: the Shared Edges fields read like the others in the panel 2026-10-31 07:47:55 +07:00
BFlat 9b26bccd3f Merge pull request #4780 from dotCooCoo/fix/render-mask-image-failure
Render: leave out an object whose opacity mask lost an image
2026-10-31 07:46:56 +07:00
dotCooCoo 44bac0d7cf Render: leave out an object whose opacity mask lost an image
With undecoded-image marks off, an image in an opacity mask's art that
failed to draw left a hole in the mask. Without Clip, the area outside
the mask art counts as white, so the masked object showed in full.

The renderer now notes an image that fails to draw while mask art is
drawn and leaves the masked object out, as PDF export does since #4765.
This covers images in pattern tiles and in cached effect and shadow
rasters, which remember the failure and report it again when they are
reused. Nested masks pass the failure outward, and View Opacity Mask
shows no coverage for such a mask. An image still waiting to be decoded,
or drawn with the undecoded-image mark, keeps today's behavior.
2026-10-31 07:33:49 +07:00
BFlat b0ab477272 Merge pull request #4777 from dotCooCoo/fix/trace-library-unlinked-fills
Image Trace: Document Library fills are not linked to swatches
2026-10-31 07:33:13 +07:00
BFlat 6acdea31ed Merge pull request #4776 from dotCooCoo/feat/tabs-ruler-indent-markers
Tabs: the ruler's indent markers set the first-line and left indents
2026-10-31 07:32:57 +07:00
BFlat 63c97dde5d Merge pull request #4778 from storytold/feat/addon-shared-edges
Add-ons: Path Precision Tools — Shared Edge Merge
2026-10-31 07:32:42 +07:00
dotCooCoo 462b7cca15 Image Trace: Document Library fills are not linked to swatches
With Document Swatches as the library, traced fills and strokes take the
library color without a swatch link. Global, spot and tint swatches no
longer link the trace, so editing a swatch later leaves the trace
unchanged, and swatch order no longer decides whether a fill is linked.
Each region still takes the nearest library color, and a tint traces at
the color the tint swatch shows.
2026-10-31 07:17:08 +07:00
dotCooCoo edbcc5a88c Tabs: Delete Tab and Repeat Tab are off while an indent marker is selected 2026-10-31 07:17:04 +07:00
dotCooCoo 830cbbcecb Tabs: the ruler's indent markers set the first-line and left indents
The Tabs panel's ruler shows an upper marker at the first line's position
(left indent plus first-line indent) and a lower marker at the left
indent. Dragging the upper marker sets the first-line indent. Dragging the
lower marker sets the left indent and keeps each paragraph's first line
where it was; Ctrl-dragging it (Command on macOS) moves both markers.
Marker drags land on whole points, or on ruler ticks with Snap to Unit or
Shift, and each release is one undo step through text.setFormat. With a
marker selected, the X (or Y) field shows and sets its position.

When the touched paragraphs have different left indents, only the upper
marker is shown, and its position applies to every touched paragraph.
2026-10-31 07:17:04 +07:00
bflatastic 79f7b393e9 Add-ons: Path Precision Tools — Shared Edge Merge
Path Precision Tools gains the Shared Edge Merge Tool, kept out of the
toolbars (All Tools drawer and Object › Plug-ins › Path Precision Tools,
no shortcut), and Keep Shared Points Together:

- Shared Edge Merge Tool (sharedEdge): over two paths touching at two
  coincident anchors (tolerance 0 to 3 pt) hovering shows the two
  stretches and the merged edge; a click replaces both with it, half way
  between them, or following the upper (Shift) or lower (Alt) path. Both
  paths stay closed or open, anchors either stretch has inside are
  matched on the other, one undo step.
- Making ends: near anchors meet on a click and an anchor one path lacks
  is added to match; Shift+Alt asks for this inside a stretch.
- Keep Shared Points Together: an option that makes Slide Anchor Along
  Path, Extend Path and Set Anchor take coincident anchors along. Nothing
  else in the app changes.
- Shared Edges section in the Anchor Inspector: brush diameter,
  coincidence and the option.
- Commands addon.pathtools.mergeEdge and movePointsTogether, params
  validated and covered by the command sweep.
- Cursor stand-in, catalog rows in every language, docs and tests.
2026-10-31 07:16:22 +07:00
BFlat 690864d4fd Merge pull request #4775 from dotCooCoo/feat/live-paint-bucket-eyedropper-sample
Live Paint: Alt-click and Alt+Shift-click with the Bucket sample with the Eyedropper
2026-10-31 06:47:26 +07:00