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.
Hopefully fixes KEYMAN-WINDOWS-1MR, and probably many related crash
reports. Will monitor on alpha before porting to stable/beta.
This changes the form destruction sequence to make sure that it
doesn't close the form until CEF has been shutdown correctly.
The hotkey option and editing did not need to be on the add remove
languages pop-up.
There size of the contentframe for all the tabs was incorrectly
calculated. The header size was not correct as the header had
padding. This caused the size to be redrawn incorrectly when
a scroll bar was first added.
- Red Text in Languages if no languages have been added
- Adjust spacing for the keyboard layout buttons to insure the overall
flex box padding matches the gap between the buttons.
- Remove blue hover from languages
- Add a selection colour for keyboard layout that has focus
- Change Hover colour for buttons
- Tweaks to the appearance of the Add/remove languages pop-up include a close button.
This has many updates to the layout of the hotkey displays
the css grid also has improvements. It also connects to the arrow keys
and fixes the focus of list items when selecting menu-item tabs
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.