vectorcraft/crates/tools/src
bflatastic 377f236687 Fix #483: Shift-drag marquees toggle the selection; the Lasso's Alt keeps the rest
A Shift-drag marquee only ever added to the selection, so there was no way to
take some of the selected objects out with it. As in Illustrator, Shift-drag
now toggles what the marquee reaches: the selected ones are deselected, the
others selected, the rest of the selection stays.

- Selection tool: the Shift marquee runs select.toggle, which now also takes
  {ids} (each one toggles).
- Direct Selection and Group Selection: the Shift marquee toggles the anchors
  inside it (select.anchorsMany mode "toggle"); a path left with none leaves
  the selection, one with all of them is selected whole again.
- select.anchorsMany takes mode "set"|"add"|"toggle"|"subtract" (add: true is
  still mode add). Adding anchors of a path selected whole keeps it whole, and
  anchor references outside the path are ignored.
- Lasso: Shift adds and Alt subtracts through the same command, so an Alt lasso
  no longer drops selected type, groups and other non-path objects.
- Tests at the tool, engine (Session::pointer) and MCP (pointer_gesture) levels,
  command sweep cases for the new modes; docs/mcp.md and ROADMAP.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 20:21:36 +07:00
..
distort Fix #321: the perspective grid hides while a perspective tool is chosen 2026-10-08 03:27:36 +07:00
draw2 Pen and anchors: Alt edits one handle, cut and convert selected anchors from the Control bar 2026-10-08 17:16:12 +07:00
xform Fix #483: Shift-drag marquees toggle the selection; the Lasso's Alt keeps the rest 2026-10-08 20:21:36 +07:00
bbox.rs Rename DrawCraft → VectorCraft: crates (vectorcraft-*), apps, binaries, types, env vars, docs, examples (.vectorcraft); old .drawcraft files and preferences still load. Fix: text bounds exact after opening a file; selection no longer marks a document modified (dirty = content differs from the saved document). Screenshots and renders regenerated. 2026-10-01 14:30:09 -04:00
builder.rs Fix #439: Shape Builder erase mode deletes edges, shows what will go and follows Alt live 2026-10-08 13:37:35 +07:00
catalog.rs Fix #122: Mirror & Cut, Line Cut and Rectangle Cut tools 2026-10-06 00:42:26 +07:00
corners.rs Fix #442: alike circular corners on rectangles that aren't square 2026-10-08 14:34:37 +07:00
cut.rs Fix #122: Mirror & Cut, Line Cut and Rectangle Cut tools 2026-10-06 00:42:26 +07:00
direct.rs Fix #483: Shift-drag marquees toggle the selection; the Lasso's Alt keeps the rest 2026-10-08 20:21:36 +07:00
distort.rs M8.14: Type and symbols in perspective are really projected and stay editable; attachments survive copies 2026-10-06 12:10:00 +07:00
draw2.rs Pen and anchors: Alt edits one handle, cut and convert selected anchors from the Control bar 2026-10-08 17:16:12 +07:00
extra.rs M2.9: Shaper tool — rough rectangles, ellipses, triangles/polygons/diamonds and lines become clean live shapes (geom::recognize), squares/circles snap; a scribble deletes the objects it crosses 2026-10-02 09:10:44 -04:00
guides.rs Fix #482: Smart Guides land resize handles on anchors and snap the transform tools' drags 2026-10-08 20:21:31 +07:00
lib.rs Part of #394: Type Object Selection by Path Only 2026-10-08 18:59:47 +07:00
meshblend.rs M8.17: Edit envelopes on the canvas: Edit Contents, mesh points and handles, Control bar 2026-10-06 12:16:59 +07:00
meshedit.rs M8.17: Edit envelopes on the canvas: Edit Contents, mesh points and handles, Control bar 2026-10-06 12:16:59 +07:00
params.rs M3.98: radial annotator extent ellipse, aspect handle and off-centre focal point 2026-10-05 04:43:43 +07:00
pathtype.rs Fix #429: Type on a path brackets, flip and Type on a Path Options that keep the type in place 2026-10-08 12:50:25 +07:00
pen.rs Pen and anchors: Alt edits one handle, cut and convert selected anchors from the Control bar 2026-10-08 17:16:12 +07:00
place.rs M4.25: Drop files on the canvas to place them; several placed files load the place cursor 2026-10-05 08:42:30 +07:00
printtiling.rs M4.80: Print Tiling tool and View > Show Print Tiling 2026-10-05 17:26:59 +07:00
rulerguide.rs Smart Guides: "align" also on a handle already in line, Free Transform's move offset and slice readouts follow Measurement Labels (review of #453) 2026-10-08 15:46:15 +07:00
select.rs Fix #483: Shift-drag marquees toggle the selection; the Lasso's Alt keeps the rest 2026-10-08 20:21:36 +07:00
settings.rs M8.3: Liquify Tool Options dialogs, pen pressure and Brush Affects 2026-10-06 10:50:16 +07:00
shape.rs Part of #394: Smart Guides display options and Snapping Tolerance 2026-10-08 15:46:15 +07:00
slice.rs Smart Guides: "align" also on a handle already in line, Free Transform's move offset and slice readouts follow Measurement Labels (review of #453) 2026-10-08 15:46:15 +07:00
symbolism.rs Rename DrawCraft → VectorCraft: crates (vectorcraft-*), apps, binaries, types, env vars, docs, examples (.vectorcraft); old .drawcraft files and preferences still load. Fix: text bounds exact after opening a file; selection no longer marks a document modified (dirty = content differs from the saved document). Screenshots and renders regenerated. 2026-10-01 14:30:09 -04:00
text.rs Type Object Selection by Path Only: every baseline, Type tool and Eyedropper (review of #475) 2026-10-08 18:59:47 +07:00
text_tests.rs Type: Hebrew and Arabic text laid out right to left (bidi), aligned by its direction 2026-10-08 05:24:44 +07:00
typewidget.rs Type: the point/area type widget converts between them; area type made by dragging resizes 2026-10-08 16:54:12 +07:00
xform.rs M14.5: Preferences > Units drive every length the UI shows and reads 2026-10-05 07:43:41 +07:00