Commit Graph
3162 Commits
Author SHA1 Message Date
BFlat c141d54dad Merge pull request #2111 from IanHollow/codex/vectorcraft-document-fonts
Text: make every supplied font family available to documents
2026-10-16 04:34:43 +07:00
BFlat f16f542b9b Merge pull request #1944 from yukincom/codex/mcp-vertical-text
G6: expose vertical writing in MCP add_text
2026-10-16 04:34:26 +07:00
BFlat 0db9d6f757 Merge pull request #1946 from yukincom/codex/vertical-punctuation-upright
G4: keep fullwidth punctuation upright without vertical alternates
2026-10-16 04:34:07 +07:00
BFlat a23a682960 Merge pull request #1949 from ham9zah/curvature-illustrator-geometry
Curvature: each three points follow the circle through them, curved ends (#1236, in part)
2026-10-16 04:33:47 +07:00
BFlat 2d1e09cf32 Merge pull request #1975 from el-j/feat/direct-selection-double-click-type
Canvas: double-clicking type with Direct Selection edits it, and Escape returns to originating tool
2026-10-16 04:33:28 +07:00
BFlat 1838a4e89a Merge pull request #2117 from wstock/feat/2000-hide-template
View › Hide Template (Cmd+Shift+W): template layers leave the canvas and come back (#2000)
2026-10-16 04:33:08 +07:00
BFlat d02802f391 Merge pull request #2085 from Silvertree2010/fix/2049-layers-panel-does-not-reveal-the
Reveal the active layer in the Layers panel after a canvas selection
2026-10-16 04:32:51 +07:00
BFlat 20525c9346 Merge pull request #2150 from AyberkA0/docinfo-path-length
Document Info: Objects gives the paths' total length (#1958)
2026-10-16 04:32:34 +07:00
BFlat 3ece6428b3 Merge pull request #2083 from fabian-co/fix/panel-menu-hover
Panel menus light up under the pointer, like the menu bar's
2026-10-16 04:32:17 +07:00
BFlat e67a9f558a Merge pull request #2082 from fabian-co/feat/swatches-follow-selection
Swatches panel follows the selection's swatch
2026-10-16 04:32:01 +07:00
BFlat a9d72d01b1 Merge pull request #2081 from fabian-co/feat/image-replace
Replace a selected image from the Control bar, with its own aspect ratio
2026-10-16 04:31:45 +07:00
BFlat 81e2c81890 Merge pull request #2080 from fabian-co/feat/recolor-library-swatches
Recolor Artwork: library colours apply as their swatches; import a library
2026-10-16 04:31:30 +07:00
BFlat fe5c78f6a5 Merge pull request #2079 from fabian-co/feat/recolor-shortcuts
Recolor Artwork from the Contextual Task Bar and the Control bar
2026-10-16 04:31:13 +07:00
BFlat 57a3cfab73 Merge pull request #1930 from turtwig/fix/glyphs-preview-zoom
Glyphs panel: zoom buttons resize the preview and the step is kept
2026-10-16 04:30:54 +07:00
BFlat 4dcb0900a6 Merge pull request #2265 from andeecollard/tests/shared-closed-boundaries
Image Trace: regression tests for shared boundaries in Abutting traces
2026-10-16 04:30:35 +07:00
BFlat 80be476b04 Merge pull request #2264 from andeecollard/fix/trace-grayscale-gradients
Image Trace: grayscale gradients use grey stops
2026-10-16 04:30:29 +07:00
BFlat cddc5a6848 Merge pull request #2263 from andeecollard/fix/trace-seam-guard
Image Trace: keep shared corners identical at nearby junctions
2026-10-16 04:30:23 +07:00
BFlat d6f6cb9b5f Merge pull request #2025 from andeecollard/fix/trace-snap-collapsed-loops
Image Trace: preserve thin closed outlines after straightening
2026-10-16 04:30:15 +07:00
BFlat 5aab51bf87 Merge pull request #2012 from andeecollard/fix/trace-small-closed-contours
Image Trace: retain tiny components and holes after fitting
2026-10-16 04:29:57 +07:00
BFlat 3bcce6593a Merge pull request #2144 from dotCooCoo/fix/twisted-walls-depth-order
3D and Materials: twisted walls and bevels are drawn back to front
2026-10-16 04:25:17 +07:00
BFlat 192ca0b8e6 Merge pull request #2180 from dotCooCoo/feat/scribble-separate-variations
Effects: Scribble has a Variation for Path Overlap, Curviness and Spacing, and stores 270° as -90°
2026-10-16 04:25:00 +07:00
BFlat b64c88b4d9 Merge pull request #2154 from dotCooCoo/feat/smart-blur-edge-modes
Effects: Smart Blur's Mode menu has Edge Only and Overlay Edge
2026-10-16 04:24:44 +07:00
BFlat 78c5973609 Merge pull request #1925 from dotCooCoo/feat/clipboard-flavors-off-ui-thread
Clipboard: Copy and Cut make the system clipboard's formats on the background thread
2026-10-16 04:24:28 +07:00
BFlat 99a6c06681 Merge pull request #2032 from dotCooCoo/fix/issue-1876
Artboards: the options icon and the panel menu open Artboard Options
2026-10-16 04:24:10 +07:00
BFlat c42b31f48a Merge pull request #2039 from dotCooCoo/fix/pathfinder-effect-keeps-type
Effects: Effect › Pathfinder uses the glyph outlines of type in the group
2026-10-16 04:23:53 +07:00
BFlat 4f794ea8db Merge pull request #2056 from dotCooCoo/feat/perf-deep-peak-working-set
CLI: perf --deep reports the peak working set on Windows and the peak resident memory on Linux
2026-10-16 04:23:37 +07:00
BFlat cc467d1ef4 Merge pull request #2063 from dotCooCoo/feat/plugin-geometry-follows-registry
Render: objects with plug-in effects follow the plug-ins installed
2026-10-16 04:23:18 +07:00
BFlat bfe6670539 Merge pull request #2064 from dotCooCoo/fix/fit-artboard-active
Artboards: Fit to Artwork Bounds and Fit to Selected Art resize the active artboard
2026-10-16 04:23:01 +07:00
BFlat bf10fd64f6 Merge pull request #2065 from dotCooCoo/feat/auto-size-type-fewer-layouts
Type: Auto Size area type in columns usually lays the columns out twice an edit
2026-10-16 04:22:45 +07:00
BFlat 2346a4acfb Merge pull request #2067 from dotCooCoo/feat/alt-drag-copies-once-more-tools
Part of #1429: Alt-drags of objects and plane widgets in perspective copy the objects once per drag
2026-10-16 04:22:29 +07:00
BFlat 5b9a9b6d6c Merge pull request #2068 from dotCooCoo/fix/active-artboard-outline
Artboards: the canvas outlines the active artboard in black
2026-10-16 04:22:13 +07:00
BFlat 82d9143502 Merge pull request #2087 from dotCooCoo/feat/layers-panel-filter
Layers: the panel filters its rows by object kind, lock and visibility
2026-10-16 04:21:55 +07:00
BFlat cebc4ed93e Merge pull request #2093 from dotCooCoo/feat/presentation-mode-artboard-keys
View: in Presentation Mode, the left and right arrow keys and a click go between artboards
2026-10-16 04:21:32 +07:00
BFlat 29bf7b7e06 Merge pull request #2099 from dotCooCoo/feat/artboard-navigator-list
Status bar: the artboard navigator lists the artboards by number and name
2026-10-16 04:21:15 +07:00
BFlat e965c0daa2 Merge pull request #2102 from dotCooCoo/feat/properties-artboard-name-options
Properties: Edit Artboards renames the active artboard and opens Artboard Options
2026-10-16 04:21:00 +07:00
BFlat aaeb658292 Merge pull request #2106 from dotCooCoo/feat/rotate-view-menu
View: Rotate View turns the view to a preset angle, and `view.rotate` sets any angle
2026-10-16 04:20:42 +07:00
BFlat d541eb9476 Merge pull request #2116 from dotCooCoo/feat/export-screens-selected-artboards
Export for Screens: the dialog opens with the Artboard tool's selected artboards checked
2026-10-16 04:20:26 +07:00
BFlat cf0be249ba Merge pull request #2134 from dotCooCoo/feat/free-distort-dialog-corners
Effects: Free Distort's corners are dragged in its dialog
2026-10-16 04:20:09 +07:00
BFlat 0594f04e30 Merge pull request #2136 from dotCooCoo/feat/color-panel-options-command
Color panel: Hide Options comes back after a restart, and `ui.colorPanel` sets the mode and options
2026-10-16 04:19:47 +07:00
BFlat b15c28b7c0 Merge pull request #2138 from dotCooCoo/fix/glowing-edges-raster-stylize
Effect menu: Glowing Edges moves to a Stylize submenu under Raster Effects
2026-10-16 04:19:23 +07:00
IanHollow 83f40f135a Text: make every supplied font family available to documents
Assisted-by: GPT-6
Signed-off-by: IanHollow <72767437+IanHollow@users.noreply.github.com>
2026-10-16 04:19:05 +07:00
YukiHiko 8b5e9e4927 G6: expose vertical writing in MCP add_text 2026-10-16 04:19:05 +07:00
YukiHiko 3a7d422046 G4: keep fullwidth punctuation upright without vertical alternates 2026-10-16 04:19:05 +07:00
ham9zah ad3531d464 Curvature: each three points follow the circle through them, curved ends (#1236, in part)
The Curvature tool built its curve as a uniform Catmull-Rom: both handles of a
smooth point a sixth of the chord between its neighbours, the ends of an open
path without handles. Uneven spacing overshot or looped, a J or U from three
points bent sharply at the middle with straight legs, and the end segments
looked flat.

- `curvature_spline` (draw2.rs) makes each stretch of three points follow the
  circle through them: a smooth point's tangent is that circle's
  (`smooth_handles`), each handle `chord / (3 cos²(α/2))` long, α between
  handle and chord capped at 90° (`arc_handle`). The ends of an open path
  mirror their neighbour's tangent in their chord (`end_handle`). A turn
  tighter than 30° (`TIGHT_TURN`) shortens its handles, so a narrow V comes to
  a point. Degenerate points become corners. `path.curvature` and the rubber
  band use it.
- `catmull_rom` is unchanged for the Pencil and Paintbrush fitting.
- `bend_last` (from: smooth), `curvature_move` on a smooth point, the point
  `curvature_insert` adds on a straight segment, and `path.convertAnchor` to
  smooth without x/y (`curvature_smooth`) use the same rule.
- `curvature_extend` gives the new end its end handle unless Alt-clicked
  (`corner` param on `path.curvatureEdit`).
- Neighbours of a point dragged on an existing path keep their tangents (a
  Pen-drawn shape isn't reshaped); the path being drawn re-curves throughout.
2026-10-16 04:19:05 +07:00
el-j 4913418d1c Type tool: Escape returns to the previous selection tool and preserves isolation mode
When entering text edit mode via double-click from a selection tool
(Selection or Direct Selection), pressing Escape now returns to the specific
tool used before double-clicking (rather than always falling back to
Selection).

Additionally, when editing text while in isolation mode (such as when drilling
into nested groups with the Selection tool), pressing Escape exits text editing
while keeping isolation mode active; a second Escape press is required to exit
isolation mode.

- Record the previous tool in TypeTool on double-click from canvas.
- Return to prev_tool on ToolKey::Escape, consuming the key in shortcuts when claimed.
- Add unit test in vectorcraft-tools verifying Escape returns to prev_tool.
- Add integration tests in vectorcraft-ui-egui verifying Escape returns to Direct
  Selection and that isolation mode persists until a second Escape.
- Update docs/target-app-parity.md and ROADMAP.md.
2026-10-16 04:19:05 +07:00
bflatastic 9e1590769e i18n(bg): Hide Template and Show Template 2026-10-16 04:19:05 +07:00
el-j 28daaf473c Canvas: double-clicking type with the direct selection tool puts the caret there
With the Direct Selection tool ("white arrow", shortcut 'a'), double-clicking
a text element (either standalone or nested inside a group) now switches to
the Type tool and immediately positions the caret at the clicked character,
matching the behavior previously introduced for the Selection tool in #284.

- In DirectSelectionTool::pointer, detect double-click hits on NodeKind::Text
  when !self.group and emit Action::SwitchTool("type").
- Group Selection (group: true) retains its existing group cycling behavior.
- Add unit test in vectorcraft-tools verifying tool switch on both standalone
  and grouped text.
- Add headless egui integration test in vectorcraft-ui-egui verifying tool switch,
  caret positioning, and inline editing without triggering shortcuts.
- Update docs/target-app-parity.md and ROADMAP.md.
2026-10-16 04:19:05 +07:00
BFlat fc51d66659 Merge pull request #2140 from dotCooCoo/feat/save-template-ait
Templates: Save as Template can also write a PDF-compatible .ait
2026-10-16 04:19:04 +07:00
wstockandClaude Fable 5.1 7b8730ec14 View › Hide Template (Cmd+Shift+W): template layers leave the canvas and come back (#2000)
Illustrator's View menu has Hide/Show Template (Shift+Ctrl+W) to leave
template layers off the screen while tracing. VectorCraft drew them (dimmed)
whatever the view, with no way to hide them short of disabling the template
option on each layer and losing the dimming.

- `view.template` toggles `ViewFlags::templates` (default on, kept across
  settings files); the View menu lists Hide Template after Lock Slices, and
  the label flips to Show Template.
- The canvas renders with the new `RenderOptions::hide_templates`, which
  leaves template layers out and nothing else; `skip_templates` (exports and
  thumbnails) also drops guide paths, so it is not reused.
- The fifteen menu catalogs translate both labels; `DYNAMIC_LABELS` lists them.

Tests: render `hide_template_leaves_only_the_template_layers_out` (the
template layer's square and image go, a guide path on another layer stays);
canvas `hide_template_leaves_template_layers_off_the_canvas` (real egui
frames: painted pixels, none after Hide Template, the same after Show
Template, each re-rendering once); the dynamic-label and catalog tests cover
the new pair.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011K1peyrh5MdZ6ttHkVq8Gh
2026-10-16 04:08:44 +07:00
NetterSilverandClaude Haiku 5.5 c54a9b0bef Reveal the active layer in the Layers panel after a canvas selection
Fixes #2049

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 04:08:42 +07:00