accepts method
- KeyEvent event,
- HardwareKeyboard state
Whether the triggering event
and the keyboard state
at the time of the
event meet required conditions, providing that the event is a triggering
event.
For example, for Ctrl-A
, it has to check if the event is a
KeyDownEvent, if either side of the Ctrl key is pressed, and none of the
Shift keys, Alt keys, or Meta keys are pressed; it doesn't have to check
if KeyA is pressed, since it's already guaranteed.
As a possible performance improvement, implementers of this function are encouraged (but not required) to check the triggers member, if it is non-null, to see if it contains the event's logical key before doing more complicated work.
This method must not cause any side effects for the state
. Typically
this is only used to query whether HardwareKeyboard.logicalKeysPressed
contains a key.
See also:
- LogicalKeyboardKey.collapseSynonyms, which helps deciding whether a modifier key is pressed when the side variation is not important.
Implementation
@override
bool accepts(KeyEvent event, HardwareKeyboard state) {
if (event is! KeyDownEvent && event is! KeyRepeatEvent) {
return false;
}
return triggers.contains(event.logicalKey)
&& _checkKeyRequirements(state.logicalKeysPressed);
}