mirror of
https://github.com/keymanapp/keyman.git
synced 2026-09-03 22:27:41 +00:00
This change has three fixes to improve the reliability of notifying Keyman Engine of updates to settings or keyboard installs: 1. It removes the closure pattern of the refresh thread, because that was closing on a variable on a different thread (`RefreshHandle`) and that could cause races and/or exceptions in the case of early free. What's more, the closure was actually unnecessary as the variable was really only used by the refresh thread! 2. It moves responsibility for setting the refresh token to the calling thread so that the caller can depend on the token being the one that is actually sent, removing a race. 3. Most important, the refresh thread now flushes all messages in its queue, as there may be multiple messages relating to the window construction that need to be processed before the wm_keyman_refresh message can be handled. This greatly improves the chance of the notification actually being sent! |
||
|---|---|---|
| .. | ||
| keymancontrol.pas | ||
| keymansysteminfo.pas | ||