RobertWHurst / Keystrokes

Keystrokes as an easy to use library for binding functions to keys and key combos. It can be used with any TypeScript or JavaScript project, even in non-browser environments.
MIT License
158 stars 6 forks source link

Reimplement KeyCombo#updateState #24

Closed RobertWHurst closed 1 year ago

RobertWHurst commented 1 year ago

The old implementation was originally designed to optimize for tick batching so that state per key combo was only calculated once per tick. while this was good for performance, it made it very difficult for users to interact with events (for example calling preventDefault).

The new implementation is a second take after learning from the limits and issues encountered from the first. The largest problem solved is sequence advancement happens once all keys are released. Random keys can no longer be pressed in-between sequences (this was never suppose) to work this way.

This closes #23