Skip to content

Fix gameplay input lockout from off-centre sticks - #46

Merged
capy-ai[bot] merged 1 commit into
mainfrom
capy/fix-gameplay-input-lockout
Oct 27, 2026
Merged

capy-ai[bot] merged 1 commit into
mainfrom
capy/fix-gameplay-input-lockout

Conversation

@zortos293

@zortos293 zortos293 commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

The input-release guard waits for all four stick axes to return within 0.15 of centre before allowing any gameplay input. Joy-Con drift or a held stick can keep the guard active indefinitely after focus returns or an overlay closes, even while the local +/- overlay still responds.

Stop using stick position to gate gameplay resumption. Preserve the existing button and touchscreen release checks, controller mapping, deadzones and wire reports.

Validation:

  • Compiled the actual release-guard block in a temporary host harness. Off-centre-stick and release-with-drift cases fail before this change; all 52 cases pass afterward, including held-button and touchscreen protection.
  • Eight nearby controller, overlay and keyboard policy tests pass with -Wall -Wextra -Werror.
  • The local machine has no devkitPro toolchain. The reported hardware incident has not been reproduced on a Switch, so this addresses a demonstrated lockout consistent with the symptoms rather than claiming hardware confirmation.

Open in Capy

Summary by CodeRabbit

  • Bug Fixes
    • Keyboard release behavior now accounts for controller button presses and touch activity. Analog stick movement no longer keeps the release guard active.

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f3ff4d6e-0bff-4970-956f-f28da9fb346e
Commits

Reviewing files that changed from the base of the PR and between e148ccd and 3104e9c.

Files selected for processing: 1
  • app/src/StreamView.cpp

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

The keyboard release guard no longer treats analog-stick movement as controller activity. It still considers controller button and touch activity.

Changes: Keyboard Release Guard

Layer / File(s) Summary
Controller activity check
app/src/StreamView.cpp
The guard no longer checks analog-axis thresholds. Controller button and touch activity still count. The unused <cmath> include was removed.

Priority: Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Suggested reviewers: blade-punisher

Merge Risk: Minimal · up to 3104e

The change allows gameplay to resume with held or drifting sticks while retaining button and touchscreen release protection. No actionable merge-blocking risk was identified; hardware behavior and reported tests were not independently verified.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within survi… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the main change: removing gameplay input lockout caused by off-centre analog sticks.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 1 functions across 1 files.

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches: 💡 1
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@capy-ai capy-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capy found no issues.

View 1 other finding in Capy.

Open in Capy

@capy-ai
capy-ai Bot merged commit ec9cc23 into main Oct 27, 2026
11 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.

1 participant