1. Dec 17, 2020
    • Marc Durdin's avatar
      fix(windows): Improve refresh performance · cea564a0
      Marc Durdin authored
      When a keyboard is installed, Keyman will now only refresh its internal
      state on a given thread when that thread receives focus and/or input,
      rather than immediately. This will dramatically reduce the chatter
      caused by Keyman Engine when a keyboard is installed or settings are
      changed.
      cea564a0
    • Marc Durdin's avatar
      fix(windows): Settings refresh management · 17b444bf
      Marc Durdin authored
      Fixes #4011.
      Fixes #4039.
      Fixes #4121.
      
      This change completes the immediate-change model for Keyman
      Configuration, by refactoring the refresh of settings out of the render
      phase and more appropriately splitting applying and refreshing. It adds
      a new message flag for wm_keyman_refresh, KR_SETTINGS_CHANGED, which
      uses a random token approach broadcast to all applications on the
      desktop to ensure that the refresh is received and multiple
      notifications for the same event can be appropriately coalesced.
      
      Most of the files touched are stripping out the refresh flags from the
      render phase.
      
      There is one small bug resolved at the same time with the options
      properties, which were not reset to default if they had been deleted
      from the registry prior to a refresh (see utilkeymanoption.pas).
      17b444bf
  2. Dec 16, 2020
  3. Dec 15, 2020