fix(ui): Escape that closes a menu also cancels an in-flight Move
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- Half a day
- Newbie friendliness
- 62/100
Research direction
The Escape cancel is gated only on !files.is_modal() in src/app/panels.rs (around lines 31-33), so start with cancel_on_escape there and find how shortcuts check for an open popup (Popup::is_any_open). Add the same popup check to the shared native path. Done means Escape with the File menu open closes only the menu while Move stays active and the status is unchanged, a second Escape still cancels, and the Status Line T1 pinned test is updated. The regression test should use real key events.
Written by the indexing model from the issue text.
Description
Problem
Pressing Escape while any menu or popup is open (for example the File menu) also runs the editor's Escape handling (cancel_on_escape): it cancels an in-flight Move and rewrites the status to "Edit cancelled". The user only meant to close the menu.
Current behavior
src/app/panels.rs (around lines 31-33) gates the Escape cancel only on !files.is_modal(), not on whether an egui popup/menu is open (Popup::is_any_open). Same on main. Found while testing the Status Line menu-set combo; the Status Line T1 test pins the current behavior so a fix flips it deliberately.
Expected
Escape with a menu or popup open closes the popup only; Move and drafts are untouched and the status is unchanged. Escape with no popup open keeps the current cancel behavior.
Acceptance
- Gate the Escape cancel on no open popup/menu (same predicate shortcuts use), in the shared native path.
- Regression test with real key events: Move in flight, open File menu, Escape -> menu closes, Move still active, status unchanged; second Escape cancels as today. Update the Status Line T1 pinned test intentionally.
- Guard ledger note if Escape handling is documented there.
- Dominant language
- Rust
- Stars
- 4
- Forks
- 2
- Avg merge
- 2h 28m
- Merged PRs (30d)
- 76
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from cristim/AztecCraft
-
area/viewport type/chore
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
cristim/AztecCraft#186 ·
Maintainers usually reply within 1 day
-
area/infra type/chore
Difficulty 1/5 Under an hour Newbie friendliness 94/100
cristim/AztecCraft#181 ·
Maintainers usually reply within 1 day
-
area/modeling type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
cristim/AztecCraft#176 ·
Maintainers usually reply within 1 day
-
area/modeling type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
cristim/AztecCraft#175 ·
Maintainers usually reply within 1 day
-
area/ui-parity type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
cristim/AztecCraft#172 · 1 comment ·
Maintainers usually reply within 1 day
All issues in cristim/AztecCraft
Similar issues
-
area:ecosystem documentation
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Chelis-Lang/chelis#3866 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
metasequoiaime/msime#8620 ·
Maintainers usually reply within 1 day
-
agent-detection macos p2 triaged
Difficulty 1/5 Under an hour Newbie friendliness 90/100
Maintainers usually reply within 1 day
-
bug documentation sev-0
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
Maintainers usually reply within 1 day