Use system modifier detector

The current implementation is not good enough, the user has to press a modifier key every time. Actually we want to use it this way:

press a ctrl key, hold on the ctrl key, and then hit other keys. We will not release ctrl key, but the keyup event by other keys will clear the modifier state.