Commit graph

27982 commits

Author SHA1 Message Date
Marc Durdin
3b948a5254 fix(web): simplify hide transition
Fixes #5907.

The state machine for the Hide transition for the OSK was very complex,
and had some peculiarities which caused it to sometimes fail to
correctly hide. Once I simplified the state machine, it seems that those
edge cases have gone away, and the keyboard always hides correctly.

There is an unrelated issue with focus timeout which can be confusing
when testing this; see #5909.
2021-11-15 16:09:14 +11:00
Marc Durdin
1effb8f6ca
Merge pull request #5908 from keymanapp/fix/web/5904-avoid-error-if-timerid-not-valid
fix(web): avoid error if timerid not valid
2021-11-15 13:53:52 +11:00
Marc Durdin
2ca084ef2b
Merge pull request #5892 from keymanapp/docs/devbox-iis-https-keyman-local.com
chore: add keyman-local.com to iis https setup
2021-11-15 13:53:43 +11:00
Darcy Wong
d11994a1cf Merge remote-tracking branch 'origin/master' into chore/developer/update-jszip 2021-11-15 09:29:06 +07:00
Darcy Wong
a44b300adb Merge remote-tracking branch 'origin/master' into chore/common/crowdin-ff-ng 2021-11-15 09:15:43 +07:00
Darcy Wong
0c03a8b65a
Merge pull request #5839 from keymanapp/chore/common/crowdin-bwr
chore(android,linux,windows): Check in crowdin strings for Bura-Pabir
2021-11-15 08:10:31 +07:00
Marc Durdin
fc8d1b3e72 fix(web): avoid error if timerid not valid
Relates to #5904.

If a call to api.keyman.com takes longer than 10 seconds, the timerid
would no longer be valid, even if the call returns successfully. This
threw a cascade of errors.

There was a secondary issue where keymanweb.com was passing in an
invalid timerid, causing the same error cascade. This is fixed in
keymanapp/keymanweb.com#38.
2021-11-15 11:17:59 +11:00
Marc Durdin
9da4ffa77a fix(web): font size was not consistently set
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)
2021-11-15 10:08:18 +11:00
Keyman Server
8d0bcd154d
Merge pull request #5903 from keymanapp/auto/version-master-15.0.147
auto: increment master version to 15.0.147
2021-11-15 05:02:10 +11:00
Keyman Build Agent
f6d8133a73 auto: increment master version to 15.0.147 2021-11-14 13:01:30 -05:00
Marc Durdin
a25b9cd8eb
Merge pull request #5894 from keymanapp/feat/developer/2858-u_xxxx_yyyy
feat(developer): support for U_xxxx_yyyy
2021-11-14 15:47:55 +11:00
Marc Durdin
a7c050d71b fix(web): resolve unhandled exception in promise
Fixes #5353.

I made the promise usage consistent in the relevant addKeyboards
functions, instead of mixing promise and async/await style code, which
made it easier to spot the place(s) where promises had not been returned
as we needed.
2021-11-14 15:43:43 +11:00
Keyman Server
e070437ef8
Merge pull request #5901 from keymanapp/auto/version-master-15.0.146
auto: increment master version to 15.0.146
2021-11-14 05:02:17 +11:00
Keyman Build Agent
85709945bb auto: increment master version to 15.0.146 2021-11-13 13:01:33 -05:00
Marc Durdin
97f60c7f40
Merge pull request #5895 from keymanapp/feat/developer/5464-validate-kps-file
feat(developer): validate .kps files during compile
2021-11-13 09:54:54 +11:00
Marc Durdin
e614ec207f
Merge pull request #5893 from keymanapp/fix/developer/5609-export-osk-on-euro-keyboard
fix(developer): crash exporting OSK on European keyboard
2021-11-13 09:53:36 +11:00
Keyman Server
2dd1611dc3
Merge pull request #5900 from keymanapp/auto/version-master-15.0.145
auto: increment master version to 15.0.145
2021-11-13 05:02:35 +11:00
Keyman Build Agent
a1faff2bc8 auto: increment master version to 15.0.145 2021-11-12 13:01:50 -05:00
Darcy Wong
233a300c50
Merge pull request #5899 from keymanapp/fix/android/revert-test-code
fix(android/app): Revert test code
2021-11-12 09:40:14 +07:00
Darcy Wong
5aba540ca3 fix(android/app): Revert test code 2021-11-12 09:20:57 +07:00
Darcy Wong
1c682692e9
Merge pull request #5874 from keymanapp/fix/web/parent-element
fix(web): Check parent element is defined before assigning
2021-11-12 08:52:24 +07:00
Darcy Wong
ad4412fe44
Merge pull request #5849 from keymanapp/fix/android/file-not-found
fix(android/app): Check KMP file exists before attempting to extract
2021-11-12 07:34:12 +07:00
Darcy Wong
73d7f43736
Merge pull request #5878 from keymanapp/fix/android/truncate-name-keyboard-picker
fix(android/engine): Truncate language name in list
2021-11-12 07:33:48 +07:00
Keyman Server
fcfa08758c
Merge pull request #5896 from keymanapp/auto/version-master-15.0.144
auto: increment master version to 15.0.144
2021-11-12 05:02:03 +11:00
Keyman Build Agent
11d53c4aa1 auto: increment master version to 15.0.144 2021-11-11 13:01:21 -05:00
sgschantz
d442e9613b removed a few strings not necessary for localization 2021-11-11 13:00:29 +07:00
Marc Durdin
2e477a9a14 chore: add new units to unit tests 2021-11-11 15:08:08 +11:00
Marc Durdin
b9c492a66b feat(developer): validate .kps files during compile
Fixes #5464.

The keyboards repository already has code to validate .xsd files, using
xmllint. This adds the same functionality directly into kmcomp and TIKE.
2021-11-11 14:41:04 +11:00
Marc Durdin
33a2e230f6 chore(developer): enforce file versions for feature 2021-11-11 13:26:56 +11:00
Marc Durdin
d704fc6233 feat(developer): test keyboard for U_xxxx_yyyy 2021-11-11 13:08:54 +11:00
Marc Durdin
66be206d96 feat(developer): support for U_xxxx_yyyy 2021-11-11 13:08:39 +11:00
Marc Durdin
f0278de484 fix(developer): crash exporting OSK on European keyboard
Fixes #5609.

If a user attempted to export the OSK to a BMP or PNG, and their base
keyboard was a European layout (102 key), then Keyman Developer would
crash as it attempted to recalculate and redraw the keyboard when
constructing the OSK object, and there would be no window for the
OSK object to draw to (or measure dimensions against).

This fix uses a temporary off-screen canvas to facilitate calculation of
dimensions, and avoids drawing or invalidating if no window is
available.
2021-11-11 12:17:09 +11:00
Marc Durdin
c0e69fcfa9 docs: final tweaks to windows setup 2021-11-11 09:24:16 +11:00
Marc Durdin
dc881ce1c0 docs: additional tweaks to layout of windows prereqs 2021-11-11 09:12:03 +11:00
Marc Durdin
b8876c2459 docs: complete windows setup docs 2021-11-11 09:00:48 +11:00
Marc Durdin
d7c57cd15a chore: add keyman-local.com to iis https setup 2021-11-11 07:26:13 +11:00
Marc Durdin
954717c0b2
Merge pull request #5776 from keymanapp/fix/developer/5718-handle-shortcut-keys-in-debugger
fix(developer): handle shortcut keys in debugger
2021-11-11 07:21:54 +11:00
Sabine
ba0092973e fix(common/core)-decxstr: tidy up code 2021-11-09 21:22:22 +01:00
Keyman Server
9bcfba9ae7
Merge pull request #5890 from keymanapp/auto/version-master-15.0.143
auto: increment master version to 15.0.143
2021-11-09 05:02:27 +11:00
Keyman Build Agent
5f8a25f55d auto: increment master version to 15.0.143 2021-11-08 13:01:45 -05:00
Sabine
d27e67b760 fix(common/core)-decxstr: requested changes eg. check boundaries for *(q+1) ; added more tests for sequences with 0xFFFF 0XF000 2021-11-08 13:12:21 +01:00
Eberhard Beilharz
642bad8d7d
fix(linux): fix freeing of options 2021-11-08 12:38:00 +01:00
Eberhard Beilharz
be7dd09cb0
chore(linux): Address code review comments 2021-11-08 12:02:30 +01:00
Eberhard Beilharz
16ebd7e653
Merge pull request #5884 from keymanapp/chore/linux/5613-unittests
chore(linux): fix failing ibus-keyman tests 🎫
2021-11-08 10:16:32 +01:00
Eberhard Beilharz
65fc5efce5
Merge pull request #5885 from keymanapp/chore/linux/removetests
chore(linux): cleanup defunct tests 🎫
2021-11-08 10:15:35 +01:00
Eberhard Beilharz
db66a12aec
Merge pull request #5886 from keymanapp/chore/linux/cleanuptests
chore(linux): Cleanup 🎫
2021-11-08 10:15:20 +01:00
sgschantz
a4721bc21b chore(ios): iOS integration of Fulah (ff-NG) localization 2021-11-08 13:28:03 +07:00
Darcy Wong
7de5c724d8 Merge remote-tracking branch 'origin/master' into common/crowdin-mfi 2021-11-08 07:50:59 +07:00
Darcy Wong
4a054861b6 chore(developer): Merge remote-tracking branch 'origin/master' into chore/developer/update-jszip 2021-11-08 07:32:09 +07:00
Darcy Wong
5b9cc959fe chore(common): Merge remote-tracking branch 'origin/master' into chore/common/crowdin-ff-ng 2021-11-08 07:30:10 +07:00