Files
ARCADIA-Studio/harness/experiments/canvas-editing-followup-20260912/always-active-review.md
T

59 lines
3.0 KiB
Markdown

# Issue 25 — remove misleading canvas activation controls
Root owns Gitea issue 25 (claim/recheck comment 668), compilation and native
acceptance. This worker owns the isolated worktree
`C:/Users/User/Documents/Git/ARCADIA-Studio/.local/always-active-canvas-20260912`,
branch `codex/always-active-canvas-956atf-20260912`, baseline `e57c390`.
## Source finding and scope decision
There is no canvas activation gate to turn on. The production Viewport accepts
the first clean pointer press, passes semantic hits/tools to its child, and
focuses that canvas through ordinary pointer ownership. Gesture eligibility is
derived from valid clean ownership, not either removed control.
The toolbar's `Canvas` control only dispatched keyboard Focus. The header's
`Focus canvas`/`Restore panels` control toggled presentation panel visibility;
top-level views.rs reads the corresponding presentation state. Neither enabled
editing. F6/Tab focus operations and pointer focus are legitimate separate input
ownership policies, particularly while Inspector or a form owns typing.
Parent explicitly approved removing both affordances and the unused controls()
focus argument while preserving the independent existing panel-layout command
semantics. Details/panel redesign remains issue 24. Free geometry remains issues
20/22. No behavior.rs or scenario_activation files changed.
## Changes
- Remove `Canvas` and `Focus canvas`/`Restore panels` widgets from process and
scenario presentation. Remove their local event/intent plumbing and the shared
controls() focus argument.
- Keep F6/Tab/Enter/Space/Escape guidance on the remaining toolbar tooltip.
- Extend actual mounted process OA/SA and scenario editing checks with absent
Canvas/Panels control identities and no initial keyboard focus grab. Existing
first canvas pan, tool selection and canvas creation clicks require no prior
activation and keep their source/model/form-lifetime checks.
- Keyboard tests traverse directly from Fit through the remaining controls to
viewport, preserving real focus, visible rings, F6 entry/exit and Inspector
typing checks.
- Retained toolbar tests capture only controls that still exist. Independent
panel-layout lifetime tests invoke the public presentation command and retain
their stale camera/gesture/source checks.
## Verification and handoff
`git diff --check` passed. No Cargo/compiler/native/Gitea operations were run.
Attempting to reuse the independent Astra/high critic failed with `agent thread
limit reached`. Root completed source review and found scope, first-click,
F6 and text ownership changes sound; commit authorized.
No executable or native acceptance is claimed.
Useful root Windows filters:
- `behavior::topology::view::layout_tests::`
- `behavior::scenario::workspace::tests::production_`
- `app::behavior_removal_tests::` for retained keyboard/text-ownership dependents
The root should inspect the native default process/scenario view, first-click
selection/tool creation, F6/Tab keyboard entry and typing after Inspector focus.