Fixes#845.
Fixes#3224.
Makes the active tab more visible both in the horizontal file tabs, and
in the vertical activity tabs by changing the background colour to
Keyman Light Blue (css: `#79C3DA`).
Fixes#4168.
This button no longer makes sense when we have template projects, as it
encourages keyboard developers to create multiple packages. The template
project should already have a package.
It is also not hard to create a package if you don't already have one;
this does not reduce the complexity significantly, apart from the mini
feature of adding both the .js and the .kmx in a single step (the .kvk
is added also by virtue of the .kmx being added, but that is done in
any case if you manually add a .kmx to a package).
Fixes#5415.
This adds `-h` and `-help` command line parameters to kmcomp. As kmcomp
uses only single-hyphen parameters currently, I opted not to support the
common `--help`, just for consistency.
Fixes#6077.
Refactor all the text field event handlers to have consistent structure
for edits, pastes and keyboard events. This fixes Ctrl+V paste as well
as tidying up the relevant code.
Fixes#6221.
If Keyman is being installed under the SYSTEM profile, e.g. when using
tools such as SCCM or Intune, then the installer runs with a redirected
folder for %LocalAppData%, under C:\Windows\SysWow64\config, but is
given the name C:\Windows\System32\config\....
Keyman Setup then creates %LocalAppData%\Keyman\Diag, which it thinks is
in C:\Windows\System32\config\... But in reality it is in SysWow64\...
Keyman Setup passes a file under this folder to Windows Installer,
running as 64 bit, which immediately falls over because the path does
not exist to it, in the real System32\config folder.
This patch disables redirection temporarily just to create the folder
under both 32 and 64 bit versions of the profile. It has no effect on
normal user accounts (apart from verifying that the folder is present
twice rather than once).
For the TSF applications in most cases there is no test parse
with updatable=false. In these cases we need to call the
core process event function and process the actions in the
one call. A bool flag has been added to track if the core process
event has been called for the current keystroke
The uninstall actions never ran because the working directory given was
invalid. Also fixed: the success/failure message is presented by the
caller rather than down in the depths of the call.
The package version should always be 7.0 for keyboard versions up to and
including 14.0, because Keyman for Window 14 and earlier only accepted
packages with version number 7.0.
Also, we never stream MinKeymanVersion for each keyboard because that
should be calculated at compile time to ensure that we get correct
version which may otherwise be out of date.
In order to avoid the test host interfering too badly with the debugger,
we will bypass SendInput and instead post all input to the local edit
window. This can result in out-of-sequence input for rapid typing, but
for a test host this is not important -- it's better that the input
doesn't end up in the debugger window due to focus changes!