Skip to content

Phase 555: add whiteboard primitive eraser behavior#235

Open
ExplodingUFO wants to merge 4 commits into
feature/phase-554-whiteboard-authoring-cookbookfrom
feature/phase-555-whiteboard-eraser-behavior
Open

Phase 555: add whiteboard primitive eraser behavior#235
ExplodingUFO wants to merge 4 commits into
feature/phase-554-whiteboard-authoring-cookbookfrom
feature/phase-555-whiteboard-eraser-behavior

Conversation

@ExplodingUFO
Copy link
Copy Markdown
Owner

Summary

  • Adds NodeCanvasWhiteboardDrawingMode.Eraser plus the host-source whiteboard-drawing.eraser action projected as PART_WhiteboardEraserButton.
  • Routes eraser-mode left press through transient whiteboard primitive hit-testing/removal without invoking graph selection.delete or deleting selected graph nodes.
  • Updates Cookbook, public API inventory, parity docs, and focused tests for action activation, toolbar projection, hit/no-hit eraser behavior, and docs evidence.

Verification

  • dotnet test tests\AsterGraph.Editor.Tests\AsterGraph.Editor.Tests.csproj -c Release --verbosity minimal (880 passed)
  • dotnet test tests\AsterGraph.Demo.Tests\AsterGraph.Demo.Tests.csproj -c Release --verbosity minimal (300 passed)
  • ./eng/validate-public-api-surface.ps1 -Configuration Release -Framework net9.0
  • git diff --check

Stack / Merge Order

@ExplodingUFO
Copy link
Copy Markdown
Owner Author

Pre-merge review finding: this PR extends the same tool-mode exclusivity bug from PR #234 to Eraser. The new test asserts that after clicking PART_WhiteboardEraserButton and then PART_PointerModeLassoButton, SelectionMode is Lasso but WhiteboardDrawingMode remains Eraser. Because the pointer coordinator handles WhiteboardDrawingMode.Eraser before selection, the canvas still erases/handles whiteboard primitives instead of running lasso selection.

Please make pointer selection modes and whiteboard modes mutually exclusive, or introduce one canonical active tool state. The fix should cover Rectangle, Freehand, and Eraser, with regression tests proving switching back to Marquee/Lasso clears the whiteboard mode and restores normal selection gestures.

@ExplodingUFO ExplodingUFO force-pushed the feature/phase-555-whiteboard-eraser-behavior branch from 9b3341c to 8dc4dd0 Compare May 14, 2026 00:29
@ExplodingUFO
Copy link
Copy Markdown
Owner Author

Fixed the eraser-mode exclusivity blocker and restacked this PR onto the latest Phase 554 head.

What changed:

  • PR now targets Phase 554 head ac6b244 instead of the old 6d3cac2 base.
  • Kept the Phase 554 shared tool-mode fix for pointer/whiteboard mutual exclusivity.
  • Added Eraser-specific regression coverage proving pointer selection clears stale WhiteboardDrawingMode.Eraser.

Verification:

  • Red tests reproduced the blocker before the fix: pointer selection left Eraser active and eraser activation did not restore Marquee from Lasso.
  • Post-restack focused action/view tests: 51/51 passing.
  • dotnet build AsterGraph.sln -c Release -v:minimal: 0 warnings, 0 errors.
  • Full AsterGraph.Editor.Tests: 880/880 passing.
  • Full AsterGraph.Demo.Tests: 300/300 passing.
  • git diff --check: clean.
  • GitHub PR checks are all green; PR reports MERGEABLE/CLEAN.

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