fw/applib/ui: Open plain menu rows on a single tap - #1903
Merged
jplexer merged 1 commit intoAug 21, 2026
Conversation
A tap on a not-selected row of a plain (non-center-focused) menu used to only select it, so opening an item after a scroll took two taps. Make plain menus behave like a phone list instead: a single tap selects the row (selection_will_change honoured) and activates it in the same gesture. A veto still changes nothing, and a redirect only selects the redirected row - opening a row the finger never touched would be a misfire. The commit uses MenuRowAlignNone so the content does not shift as the activated window pushes. Center-focused carousels keep the two-step model (tap centres, tap on the centred row activates); the double-tap window machinery is now carousel-only, since plain menus activate on the first tap. Short-item action menus keep the two-step tap via the new internal menu_layer_set_tap_select_only(): their rows hold several columns and the row-granular tap hit-test cannot tell which one the finger meant. Fixes FIRM-4102 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Joshua Jun <lets@throw.rocks>
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.
Summary
Opening a menu item on touch devices took two taps: the first tap only selected the row, the second activated it (FIRM-4102).
Plain (non-center-focused) menus now behave like a phone list: a single tap on any row selects it (
selection_will_changehonoured) and activates it in the same gesture — scroll, tap the item you want, and it opens. This also makes settings checkboxes toggle on one tap.Details:
selection_will_changeveto still changes nothing; a redirect only selects the redirected row without opening it (opening a row the finger never touched would be a misfire).MenuRowAlignNoneso the content does not shift as the activated window pushes.menu_layer_set_tap_select_only(): their rows hold several columns and the row-granular tap hit-test cannot tell which one the finger meant.Fixes FIRM-4102
Testing
./pbl testsuite passes; obelix firmware builds cleanly.🤖 Generated with Claude Code