Fixes#6364.
Removes `&layerChanged` and adds `&newLayer` and `&oldLayer` system
stores with the additional nuances around values as described in #6364.
Fixes#6168.
This does not any support for changing any system store values, but does
ensure that the statement will be correctly handled when emitting
text.
Relates to #3621.
Add support for `&layerChanged` system store. This store is set to `1`
before a `begin postKeystroke`, if the keystroke it follows resulted in
a layer change, either programatically through a keyboard rule, or
through a `nextlayer` property of the touched key.
Fixes#5316.
Keyman for macOS did not recognise the updated version number 0x0E00,
which is version 14.0. There are no changes to the file format which
impact Keyman for macOS -- the only change is support for notany and
context for Keyman Engine for Web.
Fixes#2601.
This PR adds support for the 102nd key as found on European layouts. It
does not however reshape the Enter key and move the BKSLASH key, as that
is a much bigger job; functionally this makes it possible to press the
102nd key, which was the biggest gap.
I wasn't going to do this, but realised that crash reporting was going
to be a problem on mac because it still used crashlytics/fabric. Turned
out to be a good exercise to get me back into macOS world, and fairly
straightforward to get right (helps that the other platforms broke the
ice for me).
Fixes#2375.
For applications that do not provide context to Keyman, Keyman was losing
the context buffer whenever a modifier key was pressed or released. This
change modifies the cache reset to occur only when the Command modifier is
pressed.
I attempted unsuccessfully to find an actual failing case so I could add a unit test for this. Even though I couldn't, I agree that it is the correct logic, so I'm making the change as Marc suggested.
Ensured that timer is never instantiated for modifier keys, since they should never repeat. Made synchronizing more robust to ensure that there can never be timers simultaneously active (i.e., for two different keys on the same OSK). Removed deprecated finalize method that was never getting called anyway.