spiegel-keyman/windows/src/engine/kmcomapi/com
Marc Durdin e664e93de7 fix(windows): Improve refresh reliablilty
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!
2020-12-18 08:06:03 +11:00
..
customisation chore(windows): cleanup of i18n 2020-07-27 16:54:23 +10:00
errors Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121) 2017-07-25 10:53:06 +07:00
hotkeys fix(windows): exception handling list error 2020-12-17 11:54:39 +11:00
keyboardlanguages fix(windows): exception handling list error 2020-12-17 11:54:39 +11:00
keyboardoptions fix(windows): exception handling list error 2020-12-17 11:54:39 +11:00
keyboards fix(windows): exception handling list error 2020-12-17 11:54:39 +11:00
languages fix(windows): exception handling list error 2020-12-17 11:54:39 +11:00
options fix(windows): exception handling list error 2020-12-17 11:54:39 +11:00
packages fix(windows): exception handling list error 2020-12-17 11:54:39 +11:00
system fix(windows): Improve refresh reliablilty 2020-12-18 08:06:03 +11:00
keyman_implementation.pas fix(windows): add tests and improve canonical options 2020-09-01 09:41:33 +10:00