Skip to content

Part of #394: Preferences that act on selection, the wheel, tool tips and the grid - #413

Merged
bflatastic merged 1 commit into
mainfrom
fix/issue-394
Oct 8, 2026
Merged

bflatastic merged 1 commit into
mainfrom
fix/issue-394

Conversation

@bflatastic

Copy link
Copy Markdown
Member

Sixteen Preferences options that were stored but read by nothing now do what their labels say, through the existing ToolContext/prefs plumbing, for the mouse and for agents (prefs.set, then pointer_gesture or ui.wheel). Part of #394; the issue stays open for the rest.

  • General: Show Tool Tips (off: no tool tip comes due, gated once in egui's style so every button and field follows); Double Click To Isolate; Zoom with Mouse Wheel (wheel zooms about the pointer, Shift-wheel scrolls up and down, Cmd/Ctrl-wheel sideways; off stays as before); Use Precise Cursors (Pen, Eyedropper, Slice and Blend pointers become a crosshair).
  • Selection & Anchor Display: Tolerance (objects, and Direct Selection anchors and handles, replacing the fixed 3 and 4 px); Object Selection by Path Only (compound paths too); Command Click to Select Objects Behind (Cmd/Ctrl-click selects the object under the selected one, cycling back to the top; a Cmd borrowed from another tool still clicks plainly); Zoom to Selection (Zoom In/Out centre the selection); anchor Size (anchors, handles, bounding-box handles); Highlight anchors on mouse over (Direct Selection marks the anchor under the pointer).
  • Type: Number of Recent Fonts (Type › Recent Fonts now has up to 15 slots, labels in the five complete catalogs).
  • Guides & Grid: guide and grid Color and Style (lines or dots), Grids In Back (off: the grid draws over the art).
  • The canvas context menu, panel drops and hover highlight pick objects like the selection tools. New hit::objects_at lists the objects under a point (Select Behind). The control channel gets ui.wheel (modifiers held like ui.click, deltas capped); its modifier parsing is shared now.
  • Docs: docs/mcp.md (Selection preferences), docs/control-protocol.md (ui.wheel); ROADMAP updated.

Parity sources (feature names only): helpx "Object selection methods and preferences" (Tolerance default 3 px, Object Selection by Path Only, Ctrl/Cmd-click iterates through the objects under the pointer) https://helpx.adobe.com/illustrator/using/selecting-objects.html; isolation via double-click https://helpx.adobe.com/illustrator/desktop/manage-objects/select-objects/isolate-objects.html; Zoom with Mouse Wheel modifiers (Shift vertical, Ctrl horizontal) and Zoom to Selection from community.adobe.com threads.

Now live (of #394's list): Show Tool Tips, Double Click To Isolate, Zoom with Mouse Wheel, Use Precise Cursors, Tolerance, Object Selection by Path Only, Command Click to Select Objects Behind, Zoom to Selection, anchor Size, Number of Recent Fonts, Guides Color and Style, Grid Color and Style, Grids In Back; plus Highlight anchors on mouse over (also unread, not in the list).

Still stored but unused: General: Anti-aliased Artwork, Display Print Size at 100% Zoom, Select Same Tint %, Show The Home Screen, Transform Pattern Tiles. Selection & Anchor Display: Pen and Curvature rubber band, Move Locked and Hidden Artwork with Artboard, Snap to Point; also Handles style, Show handles when multiple anchors are selected and Hide Corner Widget angle (unread too, not in the list). Type: Auto Size New Area Type, Baseline Shift, Missing Glyph Protection, Placeholder Text, Highlight Alternate Glyphs, Show Font Names in English, Size/Leading, Tracking, Type Object Selection by Path Only. Units: East Asian Type, Identify Objects By, Numbers Without Units Are Points. Guides & Grid: Show Pixel Grid. Smart Guides: Alignment Guides, Anchor/Path Labels, Color, Construction Guides, Measurement Labels, Object Highlighting, Snapping Tolerance, Spacing Guides, Transform Tools. Hyphenation: Exceptions. Scratch disks. Performance: Animated Zoom, GPU Performance, Real-time Drawing. User Interface: Auto-Collapse Iconic Panels, Large Tabs, Open Documents As Tabs, Scale Cursor. File Handling: anti-aliased bitmaps in Pixel Preview, low-res EPS proxy. Clipboard: legacy AICB. Appearance of Black: both. Devices: both.

Checks

  • Rebased on fe9f3afcb7d32032e8f332b0594692a03e275b84 (origin/main).
  • cargo fmt --all -- --check; cargo clippy -p vectorcraft-doc -p vectorcraft-tools -p vectorcraft-engine -p vectorcraft-ui-egui -p vectorcraft-mcp --all-targets -- -D warnings: clean.
  • cargo test on those five crates: 18 test binaries, 2427 passed, 0 failed. New tests (each fails without the change): hit::path_only_leaves_out_fills, hit::objects_at_lists_the_stack, tests_prefs::selection_preferences_drive_the_selection_tool, tests_prefs::use_precise_cursors_makes_drawing_cursors_crosshairs, direct::the_anchor_under_the_pointer_is_highlighted, canvas::zoom_with_mouse_wheel_preference (through ui.wheel and the input hook), canvas::grid_and_guides_take_their_preferences, canvas::anchor_size_scales_anchors_and_handles, prefs_dialog::show_tool_tips_off_hides_tool_tips, menus::zoom_to_selection_centres_the_selection, menus::number_of_recent_fonts_sets_how_many_are_listed, MCP selection_preferences_apply_to_pointer_gestures.
  • cargo xtask layers, cargo xtask brands, cargo xtask wasm: OK. cargo check --target x86_64-unknown-linux-gnu and aarch64-apple-darwin on the touched crates: OK.
  • Live MCP (vectorcraft-cli mcp, stdio): Cmd-click selects the square behind, off it doesn't; path only: inside the fill selects nothing, the edge selects; 6 px outside selects at tolerance 8, not at 3.
  • Live app (--control, isolated config): red grid drawn over the art with Grids In Back off, bigger handles at anchor Size 7; ui.wheel scrolls when off, zooms 2.36→3.52 about the pointer when on, Shift scrolls vertically, Cmd horizontally; a toolbar tool tip shows with Show Tool Tips on and not with it off (screenshots).

🤖 Generated with Claude Code

… and the grid

Fifteen Preferences options were stored but read by nothing. They now act,
through the existing plumbing (ToolContext for the tools, the prefs read by the
canvas for the view), and reach agents through prefs.set:

- General: Show Tool Tips (off: no widget's tool tip comes due), Double Click
  To Isolate, Zoom with Mouse Wheel (the wheel zooms about the pointer,
  Shift-wheel scrolls up and down, Cmd/Ctrl-wheel sideways), Use Precise
  Cursors (Pen, Eyedropper, Slice and Blend pointers become a crosshair).
- Selection & Anchor Display: Tolerance (objects, anchors and handles, in
  place of the fixed 3 and 4 px), Object Selection by Path Only (compound
  paths too), Command Click to Select Objects Behind (cycles down the objects
  under the pointer; not when Cmd only borrows the selection tool), Zoom to
  Selection (Zoom In/Out centre the selection), anchor Size, Highlight anchors
  on mouse over (Direct Selection).
- Type: Number of Recent Fonts (up to 15 Recent Fonts slots).
- Guides & Grid: guide and grid Color and Style (lines or dots), Grids In Back.

The canvas's context menu, panel drops and hover highlight pick objects like
the selection tools. The control channel gets ui.wheel (with modifiers held
like ui.click) so agents can turn the wheel. The rest of #394 stays open.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bflatastic
bflatastic merged commit f5183da into main Oct 8, 2026
@bflatastic

Copy link
Copy Markdown
Member Author

Full cargo xtask ci passed on the integrated stack; merging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant