I noticed JamAttack was complaining about some weird functionality with the undo keybind while using Custom Keybinds in some of his videos. Decided to snoop around a little. Turns out modifier releases weren't being checked properly.
Here's a simple example to check on the latest version:
Enter the editor
Place some objects around
Hold "Z"
Hold "CTRL" (this will start repeating undo)
Hold "Shift" (this will start repeating redo)
Release all keys at once
If reproduced correctly, only the "redo" keybind should be "released", while the "undo" command will remain in a repeat loop, until the editor is exited.
My proposed fix is marking every single keybind that uses the modifier as "released" when releasing the modifier itself. Implementation might be a little ugly, but it works, and I don't think any fancy algorithm is needed for just making some modifier combinations.
TODOs:
[ ] Figure out how MacOS uses "Command" as a modifier and how does it interact with other modifiers
I noticed JamAttack was complaining about some weird functionality with the undo keybind while using Custom Keybinds in some of his videos. Decided to snoop around a little. Turns out modifier releases weren't being checked properly.
Here's a simple example to check on the latest version:
If reproduced correctly, only the "redo" keybind should be "released", while the "undo" command will remain in a repeat loop, until the editor is exited.
My proposed fix is marking every single keybind that uses the modifier as "released" when releasing the modifier itself. Implementation might be a little ugly, but it works, and I don't think any fancy algorithm is needed for just making some modifier combinations.
TODOs:
[ ] Figure out how MacOS uses "Command" as a modifier and how does it interact with other modifiers