Just my 0.02 cents. Why not to introduce "transaction" concept for key presses?
1. Transaction is finished when the last key is released 2. The returned result from the transaction is the sequence of keys pressed
This should solve all [Alt, Shift] problems.
Example: user presses Alt key user presses Shift key and releases it user presses Shift key user releases Alt key user releases Shift key
The returned sequence is [Alt, Shift, Shift]
Just my 0.02 cents. Why not to introduce "transaction" concept for key presses?
1. Transaction is finished when the last key is released
2. The returned result from the transaction is the sequence of keys pressed
This should solve all [Alt, Shift] problems.
Example:
user presses Alt key
user presses Shift key and releases it
user presses Shift key
user releases Alt key
user releases Shift key
The returned sequence is [Alt, Shift, Shift]