feat(theme): hold-to-repeat in the pad editor, its profiles list, and arcade Select - #694
Merged
Merged
Conversation
This was referenced Sep 10, 2026
ddrcoder
force-pushed
the
pad-config-key-repeat
branch
2 times, most recently
from
September 12, 2026 05:54
66ab326 to
56935cd
Compare
… arcade Select Holding Up/Down/Left/Right in the pad editor now repeats after 300 ms at 60 ms intervals (the theme's shared hold-repeat timer), in both the Options screen and the Song Select overlay, in the Simple and Advanced views and the saved-profiles list. The name box ignores the hold (its Up/Down is a one-shot toggle), and any modal, view change, or exit drops it. In arcade-navigation Player Options, Select moves to the previous row but never armed the hold timer, so climbing a long pane meant tapping it once per row while Start (next row) repeated fine. Select now arms the Up hold on press and releases it, for both sides. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015PLarttSySmaMqrG5uYJHD
ddrcoder
force-pushed
the
pad-config-key-repeat
branch
from
September 20, 2026 06:50
56935cd to
cf64d36
Compare
ddrcoder
marked this pull request as ready for review
September 20, 2026 06:52
Cancel pad-editor repeats when entering Advanced, leaving Profiles, or opening Rename/Save, and when the edited pad disappears or FSR support is disabled. Route Save New through begin_save so raw keyboard releases consumed by the name dialog cannot leave navigation repeating afterward. Ignore OS repeats for the name dialog's Set as default toggle. ITGmania's ScreenOptions::MenuSelect delegates to MenuUpDown(-1): held Select moves upward, repeated movement clamps at the first row, and opposing Start/Select holds suppress repeats until one is released. Keep DeadSync's existing 300 ms / 50 ms Player Options timing, but implement the opposing-hold suppression and cover both players, release, and wrap boundaries. The accelerating pad-editor cadence remains a separate DeadSync feature; ITGmania has no corresponding built-in threshold editor. Reference: itgmania/itgmania@8a3bf88, src/ScreenOptions.cpp (MenuSelect, MenuUpDown, MoveRowRelative). Simply Love@dd06138b15492f4136796dfe4b6708ced0f7b9eb uses 30 repeats/sec for Player Options and inherits the 250 ms ScreenOptions delay. Validation: cargo test --locked -p deadsync-theme-simply-love --lib -- pad_config player_options (186 passed, 1 ignored). Four original review regressions and the staggered opposing-hold test reproduced the bugs before the fixes. rustfmt checks and git diff --check pass.
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
Hold-to-repeat for directional input in three places that only stepped once per press.
advance_hold_repeattimer. Works in the Simple and Advanced views and in the saved-profiles list. The name box ignores the hold (its Up/Down is a one-shot toggle); any modal, view change, or exit drops it. Shift state is captured at the press so a fine hold stays fine.Testing
cargo test -p deadsync-theme-simply-love --lib -- pad_config player_optionspasses.🤖 Generated with Claude Code
https://claude.ai/code/session_015PLarttSySmaMqrG5uYJHD