From 974f9ea9d9851b7039c97041f61aef7cdc824619 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Mon, 19 Feb 2024 20:54:11 +0800 Subject: [PATCH] press escape to stop capturing keyboard input --- lib/hardware/hardware_keyboard_listener.dart | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/hardware/hardware_keyboard_listener.dart b/lib/hardware/hardware_keyboard_listener.dart index d72a1d1f..5fca3e8a 100644 --- a/lib/hardware/hardware_keyboard_listener.dart +++ b/lib/hardware/hardware_keyboard_listener.dart @@ -4,6 +4,7 @@ import 'package:flutter_filament/filament_controller.dart'; class HardwareKeyboardListener { final EntityTransformController _controller; + var _listening = true; HardwareKeyboardListener(this._controller) { // Get the global handler. final KeyMessageHandler? existing = @@ -18,8 +19,14 @@ class HardwareKeyboardListener { if (keyMessage.rawEvent == null) { return false; } + if (!_listening) { + return false; + } var event = keyMessage.rawEvent!; switch (event.logicalKey) { + case LogicalKeyboardKey.escape: + _listening = false; + break; case LogicalKeyboardKey.keyW: (event is RawKeyDownEvent) ? _controller.forwardPressed()