Codex stop-gate on the previous reorder (96cf753b): putting
`dispatch_variables_panel_press` at the absolute top of the cascade
meant a Variables-row click while the PropertyPanel's fill-type
picker was open returned true and left `fill_type_picker_open=true`.
The fill picker would float over the chrome until the next
unrelated click happened to land outside its rect.
Cascade order now:
0c0. Fill-type picker outside-click dismiss
(must run first when open — any click anywhere closes the
picker, then swallows or routes to a SetFillType /
ToggleFillTypePicker action).
0b1. VariablesPanel hit dispatch
(BEFORE PropertyPanel so the bottom-anchored Variables rect
wins for clicks in its z-order overlap with the rail).
0c. PropertyPanel input + action hit-tests.
The fill-picker block already swallows every click when open, so
reaching the Variables dispatcher requires the picker to be
closed — which means the existing dismiss path runs unconditionally
before any Variables click can fire. 295 shell-core + 20 shell-
native tests still pass.
press.rs: 832 → 836 (the dismiss comment + restored ordering adds
4 lines). Still over the 800 cap as pre-existing tech debt; my
session has added +11 lines total to this file (825 → 836), which
is small and bounded.
|
||
|---|---|---|
| .. | ||
| anthropic-agent-sdk | ||
| copilot-sdk | ||
| openpencil-app | ||
| openpencil-desktop | ||
| openpencil-shell-core | ||
| openpencil-shell-native | ||
| openpencil-shell-web | ||
| pen-codegen | ||
| pen-core | ||
| pen-engine | ||
| pen-figma | ||
| pen-types | ||
| wasm-libc-shim | ||
| CLAUDE.md | ||