fix(input): honor auxiliary-window key gate
Both original key handlers return without processing gameplay keys while any of the four child-window slots is occupied. Rust continued to toggle sound through Help, HighScore, and name-entry UI and used F1 to close Help, behavior the main Win16 window cannot perform through an active child. Limit recovered F1 and F12 handling to the attract and playing screens. The portable Enter/Escape Help return remains available as an explicit modern control without bypassing the original main-window gate. Test Plan: - `cargo test --workspace --all-targets --all-features` -- 125 passed - `cargo clippy --workspace --all-targets --all-features -- -D warnings` -- passed - `rumdl check --flavor commonmark RECONSTRUCTION.md CHANGELOG.md` -- passed - `git diff --cached --check` -- passed
This commit is contained in:
@@ -285,16 +285,13 @@ impl App {
|
||||
}
|
||||
|
||||
fn handle_global_input(&mut self) {
|
||||
if is_key_released(KeyCode::F12) {
|
||||
let base_screen = matches!(self.screen, Screen::Attract | Screen::Playing);
|
||||
if base_screen && is_key_released(KeyCode::F12) {
|
||||
self.sounds_enabled = !self.sounds_enabled;
|
||||
}
|
||||
if is_key_pressed(KeyCode::F1) && self.screen != Screen::NameEntry {
|
||||
if self.screen == Screen::Help {
|
||||
self.screen = self.return_screen;
|
||||
} else {
|
||||
self.return_screen = self.base_screen();
|
||||
self.screen = Screen::Help;
|
||||
}
|
||||
if base_screen && is_key_pressed(KeyCode::F1) {
|
||||
self.return_screen = self.base_screen();
|
||||
self.screen = Screen::Help;
|
||||
}
|
||||
if is_key_pressed(KeyCode::F10) && self.screen != Screen::NameEntry {
|
||||
if self.screen == Screen::Settings {
|
||||
|
||||
Reference in New Issue
Block a user