Title: Key-Repeat Hangs Application on Mac OS X Sierra And Above
When you press, and hold (long enough for key-repeat to start), any of the following characters:
z, c, n, a, s, e, y, u, i, o, j
Any further key-presses stop coming to the application (though the mouse continues to work), which effectively hangs the application.
If this occurs, you can press, and hold (long enough for key-repeat to start) the “t” key, and key-presses will resume coming to the application, or you can restart the application to resume input.
This was observed on Mac OS X 10.12.3 (Sierra), and also on Mac OS X 10.13 (High Sierra), and will probably occur in any subsequent level.
Cause Of Problem:
This occurs because the Character Accent Menu is triggered, and when that happens, no more 'key-pressed' events are passed to the application. The appropriate 'key-released' events are still passed, as before, but there are no new 'key-pressed' events.
To keep this from happening, you need to disable the accent menu, and enable key-repeat in its place. If you don’t need the accent menu (for special European-language characters), you only need to do this once.
You can easily do this through a defaults write command, which is entered using the Terminal utility application.
Run the Terminal utility, then copy/paste the following line into the Terminal window, and then hit the Return (Enter) key:
write -g ApplePressAndHoldEnabled -bool false
After you do this, the problem shouldn’t happen again, though you may need to restart the KeyMusician Keyboard if it was already running.
If you need to re-enable the accent menu (which allows the problem to occur again), copy/paste the following line into the Terminal window, then hit the Return (Enter) key:
write -g ApplePressAndHoldEnabled -bool true
In the Terminal window, if you press the Up-Arrow Key, it will retrieve previously entered statements (including either of the above), so you can use the Up-Arrow key to display it, then hit the Return-key to perform it.
This is a permanent new feature of Mac OS X, so all you can do is work-around the problem. There is nothing the application can do about it.