Skip to content

fix(ui): make Enter on the Review page start the install - #31

Merged
Timtam merged 3 commits into
Timtam:mainfrom
math65:fix/review-enter-installs
Oct 6, 2026
Merged

Timtam merged 3 commits into
Timtam:mainfrom
math65:fix/review-enter-installs

Conversation

@math65

@math65 math65 commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

What was wrong

Install is the Review page's default button, so Enter should start the install from anywhere on the page. But focus lands on the page's read-only multiline summary, and a multiline text box keeps Enter for itself (the NSTextView on macOS, DLGC_WANTALLKEYS on MSW), so the default button never saw the key. It's the same trap the Done page already works around with bind_done_page_enter_closes.

What changed

The install click handler becomes a shared closure, called by the button and by a new Enter handler on the summary (bind_review_enter_installs, modelled on the Done page one). The handler only acts on the Review step and while Install is enabled, so Enter can't start anything the button would refuse.

Testing

Validated on macOS with VoiceOver: Enter on the Review page starts the install. cargo fmt, clippy and tests are clean.

Untested on Windows (I have no Windows machine). Worth checking there: that Enter in the Review summary starts the install once, and not twice if the native control does forward Enter to the default button after all.

🤖 Generated with Claude Code

math65 and others added 3 commits September 25, 2026 19:45
Install is the Review page's default button, so Enter is meant to start
the install from anywhere on the page. But focus lands on the page's
read-only multiline summary, and a multiline text box keeps Enter for
itself (the NSTextView on macOS, DLGC_WANTALLKEYS on MSW), so the default
button never saw the key: the same trap the Done page already works
around with bind_done_page_enter_closes.

The install click handler becomes a shared closure, called by the button
and by an Enter handler on the summary. The handler only acts on the
Review step and while Install is enabled, so Enter can't start anything
the button would refuse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
main split the UI crate into modules (Timtam#27) and gained the issue Timtam#32 check
for an open REAPER in the Install handler since this branch was made:

- The Install handler becomes the shared start_install closure as this
  branch intended. Timtam#32's REAPER check is its first statement, so Enter on
  the Review summary runs the same check as the button.
- bind_review_enter_installs moves to wx_app/widgets.rs, next to
  bind_done_page_enter_closes it is modelled on, made crate-visible.
- The CHANGELOG entry keeps its place among main's Fixed entries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…age Enter fix

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Timtam
Timtam merged commit c402a8c into Timtam:main Oct 6, 2026
5 checks passed
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.

2 participants