From c60a990938e6bbf5feff4e4ac1a2bb24cfb1c17e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 11 Dec 2025 07:24:50 +0000 Subject: [PATCH] Add mounted check in delayed callback and length validation for keys Co-authored-by: jonasbark <1151304+jonasbark@users.noreply.github.com> --- lib/pages/button_simulator.dart | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/pages/button_simulator.dart b/lib/pages/button_simulator.dart index 4fdab2e..b3ef274 100644 --- a/lib/pages/button_simulator.dart +++ b/lib/pages/button_simulator.dart @@ -108,7 +108,9 @@ class _ButtonSimulatorState extends State { Future.delayed( _keyPressDuration, () { - _sendKey(context, down: false, action: action, connection: connection); + if (mounted) { + _sendKey(context, down: false, action: action, connection: connection); + } }, ); return KeyEventResult.handled; @@ -371,8 +373,8 @@ class _HotkeySettingsDialogState extends State<_HotkeySettingsDialog> { final key = event.logicalKey.keyLabel.toLowerCase(); - // Only allow 1-9 and a-z - if (_validHotkeyPattern.hasMatch(key)) { + // Only allow single character 1-9 and a-z + if (key.length == 1 && _validHotkeyPattern.hasMatch(key)) { setState(() { _editableHotkeys[_editingAction!] = key; _editingAction = null;