mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-07 17:36:00 +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) |
||
|---|---|---|
| .. | ||
| keyboards | ||
| text | ||
| build.sh | ||
| tsconfig.json | ||