'LogicalKeyboardKey.meta in shortcut is triggered without pressing the other keys in the LogicalKeySet

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!



Solution 1:[1]

It's a known issue/behaviour, it seems an issue with MacOS, more information can be found here and here

But the solution is to use, SingleActivator instead of LogicalKeySet

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Keff