spiegel-keyman/common/web/input-processor
Marc Durdin 0741b88dc2 fix(web): crash on custom modifier keys
Fixes #6788.
Fixes KEYMAN-WEB-22.
Fixes KEYMAN-DEVELOPER-BQ.
Fixes KEYMAN-ANDROID-160.

Fixes a crash introduced in #6473 which was trying to prevent modifier
keys from triggering "fat finger" alternate lookups, due to incomplete
nullish coalescing.

Related to this, from what I can see, a secondary side-effect of the fix
in #6473 was that some key events may have never had their ruleBehaviors
finalized if they matched the `isOnlyLayerSwitchKey` heuristic, leading
to potential issues with edge case 'deadkey+layer switch' keys or keys
that set store values, for example. So this fix also makes the
`isOnlyLayerSwitchKey` test more targeted.

Identified this when adding a Caps Lock layer to sil_euro_latin and
testing the layer switching. At time of fix, the error had been raised
in KeymanWeb, Keyman Developer and Keyman for Android, but not yet
Keyman for iPhone and iPad.
2022-06-17 05:22:19 +10:00
..
src fix(web): crash on custom modifier keys 2022-06-17 05:22:19 +10:00
tests/cases chore(web): reverts input-processor demodularization from #6597, #6622 2022-05-23 13:25:55 +07:00
.gitignore chore(common): move common/core/web to common/web and flatten 2022-05-17 11:15:22 +10:00
package.json chore(web): eliminates web-environment package 2022-05-23 13:40:29 +07:00
README.md chore(common): move common/core/web to common/web and flatten 2022-05-17 11:15:22 +10:00
test.sh chore(web): Merge branch 'chore/web/merge-web-version-environment' into chore/web/better-lm-worker-bundling 2022-05-30 09:06:45 +07:00

Keyman: Keyboard Processor Module

The Original Code is (C) 2017-2020 SIL International

The Keyboard Processor module is an internal component of KeymanWeb, seen within this repo at /web/.

Minimum Compilation Requirements

  • A local installation of Node.js v8.9+.
    • Builds will call npm install to automatically install further necessary build dependencies.

    • Linux users can run the following to update to LTS version of nodejs

sudo apt-get install python-software-properties
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs

The build script may be found at src/build.sh.