2.1 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, references, priority, ordinal
| id | title | status | assignee | created_date | updated_date | labels | dependencies | references | priority | ordinal | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-231 | Restore controller input while subtitle sidebar is open | Done |
|
2026-03-24 00:15 | 2026-03-24 00:15 |
|
|
high | 54900 |
Description
When keyboard-only mode is active, opening the subtitle sidebar should not disable controller navigation and lookup/mining controls. Restore controller input while the sidebar is open, while keeping true modal dialogs blocking controller actions.
Acceptance Criteria
- #1 Opening the subtitle sidebar does not block controller input for keyboard-only mode actions.
- #2 Controller-select/debug and other true modal dialogs still block controller actions while open.
- #3 Focused regression coverage exists for the sidebar-open controller gating rule.
Implementation Notes
Root cause: renderer gamepad polling used the broad isAnyModalOpen() check as its interaction gate, and that list includes subtitleSidebarModalOpen. The subtitle sidebar is non-modal for controller usage, so gamepad input was being suppressed whenever the sidebar was visible.
Fixed by extracting a dedicated controller-interaction blocking helper that excludes the subtitle sidebar but keeps the existing blocking behavior for true modal dialogs.
Final Summary
Restored controller input while the subtitle sidebar is open by switching gamepad polling to a dedicated modal-blocking rule that leaves the sidebar controller-passive. Added a regression test covering the sidebar-open exception and preserving hard blocks for actual modal dialogs.