mirror of
https://github.com/keymanapp/keyman.git
synced 2026-10-17 11:27:39 +00:00
Fixes #5779. Fixes #5731 (I believe mitigation is sufficient to close this issue). A variety of interrelated font and font size display issues resolved: 1. KVK font was not applied early enough for size calculations, which meant that we were calculating font scaling per key based on a default font when transforming from the KVK data for desktop devices (defaultLayout.ts) 2. Font scaling for non-default layers was calculated when elements were not visible and had no size information, giving incorrect values. To resolve this, font scaling is now calculated when a layer is made visible, which had performance impacts; resolved by reducing unnecessary `layer.refreshLayout()` calls; see performance point 1 below (oskView.ts:layerChangeHandler()) 3. `getViewportScale()` would return an incorrect scaled value when emulating touch devices on a desktop browser (kmwutils.ts) 4. After switching keyboards, the device-specific scaling factor was not maintained (oskView.ts:refreshLayout()) Related performance improvements: 1. Multiple calls to `layer.refreshLayout()` in `refreshLayout()` have been eliminated, and only the currently visible layer is now refreshed. This dramatically reduces the number of calls to `getIdealFontSize()` which was the primary concern of #5731. (visualKeyboards.ts) 2. Unnecessary use of `innerHTML` replaced with `innerText` (oskBaseKey.ts) Minor Keyman Developer performance improvement: 1. The web debugger no longer recalculates the OSK twice (test.js) |
||
|---|---|---|
| .. | ||
| src | ||
| tests/cases | ||
| .gitignore | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| test.sh | ||
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 installto 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.