Fixes#3680.
Note that because the installer version may differ from the Keyman
version that will actually be installed, the installer version number is
a bit hidden away in the Options dialog, to try and reduce potential for
confusion.
For example, if a user already has the installer downloaded, but a new
version of Keyman is available, then by default the installer will try
and download the new version rather than install the current version.
While it might be nice to add the tag to versions in filenames, this
creates a lot of work on the website where we make some filename
assumptions. So, this PR winds that detail of filename changes back,
and renames copydev.in to download.in to make it consistent with the
other download.in files.
Release build executables should have 3 component version numbers with
the version tag appended, e.g. keymandesktop-14.0.155-alpha-local.exe.
Coming later, rename keymandesktop-version.exe to keyman-version.exe.
Fixes#3665.
On some systems, subkeys of HKCU\Software\Keyman could have incorrect
permissions and these would not be corrected with earlier fixes such as
in #2316. This fix resolves the problem by recursively correcting
permissions on all subkeys, rather than just the top two levels.
This issue caused Metro-style applications (Windows Store apps) to fail
to accept Keyman keyboard input.
Addresses Coverity reports for compiler.cpp and other files.
Note that whitespace was reformatted on this PR. You may want to compare
with ignore-whitespace.
Fixes#3561.
Resolves issues with upgrading disabled keyboards, and fixes a secondary
issue where Windows was giving us invalid LANGIDs for locales, which was
causing trouble with transient LANGIDs.
Relates to #3561.
If a keyboard has languages installed under one of the four transient
language profiles, then we need to jump through some additional hoops to
upgrade it to the 14.0 model.
This does not yet handle all scenarios around installed but non-loaded
keyboards.
Relates to #3561.
If a keyboard is installed for a transitional profile but another
keyboard is already installed for that profile, then Keyman would
crash, expecting the transitional profile to be missing.
Fixes#3633.
Memory allocation was half its required size due to missing
`sizeof(Char)` calculation.
Also added extra tags to Sentry events for command line and executable,
which made tracing this issue so much easier.
Fixes#1843.
If there are so many keyboards installed that the menu would grow larger
than 3/4 of the screen height, then the menu will become scrollable.
Fixes#1659.
If there are too many keyboards to fit in the OSK toolbar, the toolbar
will now show a dropdown menu button and excess keyboards will be
visible there.