Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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_WANTALLKEYSon MSW), so the default button never saw the key. It's the same trap the Done page already works around withbind_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