Relates to KEYMAN-WINDOWS-B.
While this doesn't address the root cause of the exception, it should
prevent this unhandled exception, and adds breadcrumbs to help us see
which code path might be triggering the issue.
While Keyman Core already supported the base layout flags, they were not
being passed in from Keyman Engine for Windows. This meant that any
rules that used `baselayout` would fail, such as in sil_ipa with AltGr+0
for }
0bf72bed74/release/sil/sil_ipa/source/sil_ipa.kmn (L348-L350)
This patch adds support for the following properties:
* KM_KBP_KMX_ENV_BASELAYOUT: the legacy base layout name, e.g. kbdus.dll
* KM_KBP_KMX_ENV_BASELAYOUTALT: the BCP 47 base layout name, e.g. en-US
* KM_KBP_KMX_ENV_SIMULATEALTGR: whether the user has selected to emulate
AltGr with Ctrl+Alt, for example on laptops without a right alt key.
* KM_KBP_KMX_ENV_BASELAYOUTGIVESCTRLRALTFORRALT: whether the system base
layout in use generates Ctrl+RAlt when RAlt is pressed, which can be
true for many European system layouts. This is necessary when
associating the keyboard with a European language because the base
keyboard becomes the language's default keyboard, rather than kbdus.
When the windows platform recieves the action for a backspace
it will check to see if the character being delete is a surrogate
pair. If it is and the app is TSF aware app it will need to backspace
twice to remove both parts of the surrogate pair. For legacy apps this
is not required.
Rename ProcessActionsTestParse to NonUpdatable parse. It does
more then just test. Add handling for the invalidate context action
to this parse, so that if we emit a keystroke we invalidate the context
Remove the saving of context and keyboard options
on the non updateable call to process hook.
The windows Text Input Processor calls twice one call
is not updateable. With the core integeration we run
the processor only once, preserving the actions and
context to be applied on the updatable call.
Updated various places in Keyman for Windows to show the full
VersionWithTag rather than the short version number we had been
previously showing:
- Support tab
- System Information, About dialog