When determining whether to move to the update available the
ucrsUpdateReady is now taken into account, not just the wucSuccess
flag. All the cases that check if there is Keyman installer file in
the metadata now check for this, and this was the original intent.
A two new function HasKeymanInstallFileUpdate and
CheckMetaDataForUpdate have been added to aid this check.
or stale. This commit adds a precondition check when entering the
Download state. It checks to see if the cache.json file still exists
then it checks if there are packages or installer files to download.
This will also check the version with ucrsUpdateReady, so if the
installed version is already newer it will not attempt the download.
If the check fails it will removed any cached files and return to
the idle state and check for updates.
Fixes: #13767
Before we only skipped the handlekmshell checks if we
were in installing state and the FMode was related to
upgrading or installing the keyboard packages. However
like as seen in 13984 if an upgraded is started from the
standalone installer the statemachine state could be
in UpdateAvailable instead of the Installing State.
Due to this limitation we will skip handlekmshell when in
these FModes in any state.
Fixes: #13770
If configuration is set to not automatically downloadupdates
and then from the configuration tab the check for update button is
clicked. If an update is found the upgrade statemachine is now in
state UpdateAvailable. If a updated keyman installer file is then
download direclty from keyman.com. Then installed by running the self
installer then on firstrun the statemachine will still be in the
UpdateState. This is should be fine, but it will be good to breadcrumb
incase we start to see some crashes on firstrun with this interaction.
The setup executable could modify the registry state directly but it is
cleaner to have the one master of the registry state value.
Fixes: #13771
The state machine method for Exiting a a state was overiding
the Delphi system Exit. This meant that any intended early returns
inside TState method where actually just calling the State.Exit
method then continuing execution within the method.
Fixes: 13831
Be more precise by matching the file name in the cache.json file
with the downloaded file in the cache folder. This will mean any
older installation versions that were not correctly cleaned up will
not be installed.
fixes#13831
- add link to Linux
- reword some questions in the Windows main index
- explicitly mention Windows in `requirements.md` to make it clear that
this is for Windows only
- update `os.md` since Windows on Arm is no longer in preview
Removed the redundant thread check guard on load modifer. Added guard
to reading the option. Also fixed some formating. and made the load
modifier private.
Fixes: #13440
This refactors the cached of the right modifier key used in hotkeys
option. In the lowlevelhook you couldn't reset the cached value.
It is now part of the hotkeys class which is more logical encapsulation
the logic assocaited with the hotkeys.
The scroll bar was also not working correctly for display content.
Different options where explored but the best was to make the outer
update content block a "display: block" instead of using flex.