Fix noisy OS sounds on key presses

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2026-08-30 18:46:28 +02:00
parent 024d60d25a
commit ce0b2432c6
+16 -4
View File
@@ -90,12 +90,15 @@ class _PlayerState extends State<Player> {
@override
Widget build(BuildContext context) {
return KeyboardListener(
return Focus(
focusNode: _focusNode,
onKeyEvent: (value) {
if (value is! KeyDownEvent && value is! KeyRepeatEvent) return;
onKeyEvent: (FocusNode node, value) {
if (value is! KeyDownEvent && value is! KeyRepeatEvent) {
return KeyEventResult.ignored;
}
final LogicalKeyboardKey key = value.logicalKey;
bool handled = false;
if (key == LogicalKeyboardKey.keyA) {
// Move left
@@ -103,6 +106,7 @@ class _PlayerState extends State<Player> {
if (playerAngle < 0) {
playerAngle += 2 * math.pi;
}
handled = true;
} else if (key == LogicalKeyboardKey.keyD) {
// Move right
playerAngle += 0.1;
@@ -110,15 +114,23 @@ class _PlayerState extends State<Player> {
if (playerAngle > 2 * math.pi) {
playerAngle -= 2 * math.pi;
}
handled = true;
} else if (key == LogicalKeyboardKey.keyW) {
// Move forward
playerPosition += playerDelta;
handled = true;
} else if (key == LogicalKeyboardKey.keyS) {
// Move backwwards
playerPosition -= playerDelta;
handled = true;
}
setState(() {});
if (handled) {
setState(() {});
return KeyEventResult.handled;
}
return KeyEventResult.ignored;
},
child: CustomPaint(
painter: PlayerPainter(