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 @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return KeyboardListener( return Focus(
focusNode: _focusNode, focusNode: _focusNode,
onKeyEvent: (value) { onKeyEvent: (FocusNode node, value) {
if (value is! KeyDownEvent && value is! KeyRepeatEvent) return; if (value is! KeyDownEvent && value is! KeyRepeatEvent) {
return KeyEventResult.ignored;
}
final LogicalKeyboardKey key = value.logicalKey; final LogicalKeyboardKey key = value.logicalKey;
bool handled = false;
if (key == LogicalKeyboardKey.keyA) { if (key == LogicalKeyboardKey.keyA) {
// Move left // Move left
@@ -103,6 +106,7 @@ class _PlayerState extends State<Player> {
if (playerAngle < 0) { if (playerAngle < 0) {
playerAngle += 2 * math.pi; playerAngle += 2 * math.pi;
} }
handled = true;
} else if (key == LogicalKeyboardKey.keyD) { } else if (key == LogicalKeyboardKey.keyD) {
// Move right // Move right
playerAngle += 0.1; playerAngle += 0.1;
@@ -110,15 +114,23 @@ class _PlayerState extends State<Player> {
if (playerAngle > 2 * math.pi) { if (playerAngle > 2 * math.pi) {
playerAngle -= 2 * math.pi; playerAngle -= 2 * math.pi;
} }
handled = true;
} else if (key == LogicalKeyboardKey.keyW) { } else if (key == LogicalKeyboardKey.keyW) {
// Move forward // Move forward
playerPosition += playerDelta; playerPosition += playerDelta;
handled = true;
} else if (key == LogicalKeyboardKey.keyS) { } else if (key == LogicalKeyboardKey.keyS) {
// Move backwwards // Move backwwards
playerPosition -= playerDelta; playerPosition -= playerDelta;
handled = true;
} }
setState(() {}); if (handled) {
setState(() {});
return KeyEventResult.handled;
}
return KeyEventResult.ignored;
}, },
child: CustomPaint( child: CustomPaint(
painter: PlayerPainter( painter: PlayerPainter(