Originally posted on: https://stackoverflow.com/questions/71556680/logicalkeyboardkey-meta-in-shortcut-is-triggered-without-pressing-the-other-keys
I've been working with Shortcuts, Actions and key binds with Flutter web. And I've found a weird behaviour that I can't find a solution to.
The thing is, I have defined a series of LogicalKeySet for a set of actions. I create 2 per action, one for windows and one for mac. They look something like this:
final boldKeySetWindows = LogicalKeySet(LogicalKeyboardKey.control, LogicalKeyboardKey.keyB);
final boldKeySetMac = LogicalKeySet(LogicalKeyboardKey.control, LogicalKeyboardKey.keyB);
I add them to the Actions widget as specified here.
final boldKeySetWindows = LogicalKeySet(LogicalKeyboardKey.control, LogicalKeyboardKey.keyB);
final boldKeySetMac = LogicalKeySet(LogicalKeyboardKey.control, LogicalKeyboardKey.keyB);
Shortcuts(
shortcuts: {
boldKeySetWindows: MEFormatIntent(boldFormatter),
boldKeySetMac: MEFormatIntent(boldFormatter),
},
child: Actions(
dispatcher: MEFormatActionDispatcher(),
actions: <Type, Action<Intent>>{
MEFormatIntent: MEFormatAction(_controller),
},
)
);
The problem or weird behaviour is the following, for windows (using control) it works fine, it only executes MEFormatAction when both ctrl and b are pressed.
But if I try using the meta key or ⌘ key plus b it works correctly the first time you press cmd+b, but after that, if I quickly press cmd again, it executes MEFormatAction again. (This behaviour does not happen with ctrl)
Am I missing something, or is this a bug?
I have not tried anything as I have been unsuccessful in finding information regarding this behaviour, any help or advice is highly appreciated!
Top comments (0)