When didn't set the correct environment when building Debian packages
with GitHub actions. The version information wasn't included in the
source file but instead was generated at binary package build time,
at which time not all necessary environment variables were available.
This change will create a patch file on-the-fly which gets
included in the source package that contains the correct information.
Fixes#9878.
Fixes#7851.
Note that this fixes the selection pop issue with duplicate ids in some
scenarios but not all. For example, the undo stack doesn't have enough
detail at this point to be able to track this. This fix addresses the
most egregious issue relating to key size adjustment and similar.
Fixes#8000.
In earlier versions of KeymanWeb, it was assumed that layer switch keys
would not necessarily need an identifier, as they would not be
generating a standard KeymanWeb key event. However, this assumption does
not really hold, so we should be warning on missing identifiers for
layer switch keys.
Renames two messages.ts to kmn-compiler-messages.ts and
kmw-compiler-messages.ts, as otherwise confusion reigns.
Also a minor cleanup of the error messages from touch layout processing,
to clarify message names and return appropriate message for missing
layout file.
Fixes#7852.
When undo is run in the layout builder, it is better to keep the user's
selected presentation if possible. (The selected presentation is not
stored in the undo stack, but is a view property affected by the
currently selected platform.)
Fixes#7880.
Virtual keys have never been allowed in context. This should be an error
in a keyboard. Note: virtual keys in output are officially unsupported
but still kinda sorta a little bit work in Windows -- but I doubt they
will ever be officially supported.
Also includes small side journey to tidy up names and constants for two
other tests (error_duplicate_group and error_duplicate_store).
Several unit tests were not running as they were not referenced in
developer/src/test/auto/Makefile. This meant that some tests were
outdated:
* two keyboard fixtures needed recompiling with kmcomp in order to match
* some interfaces had changed slightly, necessitating updates to
corresponding unit tests.
Fixes#9899.
Several problems resolved here:
* project mru did not refresh the welcome screen on first load, so the
welcome screen was often showing projects that were no longer relevant
* content saved to registry did not match expectations on load, so mru
never worked between sessions (always flushed on reload)
* synchronization between simultaneous sessions did not work, because
the list was only saved when Keyman Developer exited
Minor tidyup:
* WideString -> string -- legacy cleanup from when Delphi was
non-Unicode.
* Reordered functions to group more clearly.
Note: the issue was not that there was both registry and xml content;
the source of truth is the registry for Project MRU, and project_mru.xml
is copied from that for the welcome screen. So instead of taking the
fix recommended in #9899, have addressed this by fixing the above points
in the registry code.
Fixes#9889.
This arises from a deprecated way of using Keyman Developer by starting
Keyman Developer by opening a keyboard .kmn file from Explorer, which
causes Developer to run in a 'projectless' mode. This was not tested in
the new compiler integration, and that has caused this crash.
In 'projectless' mode, there is still a global 'untitled' project, but
the files loaded do not 'belong' to it. The compiler settings are
inherited from the global 'untitled' project in this case.