Commit graph

3302 commits

Author SHA1 Message Date
Marc Durdin
ce2aa9a166 feat(web): support for &layerChanged
Relates to #3621.

Add support for `&layerChanged` system store. This store is set to `1`
before a `begin postKeystroke`, if the keystroke it follows resulted in
a layer change, either programatically through a keyboard rule, or
through a `nextlayer` property of the touched key.
2021-11-24 06:45:20 +11:00
Marc Durdin
80db98a5f9 feat(web): compiler support for newContext, postKeystroke
Relates to #3621.

This adds basic compiler support for the `begin newContext` and
`begin postKeystroke` statements, along with the corresponding `gn` and
`gpk` entry points in the compiled JavaScript keyboard.

TODO: `readonly` semantics, usage constraints, `&layerChanged`.
2021-11-23 10:13:14 +11:00
Ross
eb080e1b15 fix(windows): address review comments 2021-11-23 07:57:24 +10:00
rc-swag
46042987df
fix(windows): commit review suggestions
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-11-23 07:20:22 +10:00
Ross
ec98070775 fix(windows): remove set default registry value 2021-11-22 21:37:41 +10:00
Ross
de966aa5c5 fix(windows): fix loadkeyboardoptions core memory error
LoadKeyboardOptionsCore no longer frees memory that
has not been allocated.
2021-11-22 15:33:47 +10:00
Marc Durdin
9259ba5827 fix(developer): move web osk beneath text area
Fixes #5926.

This gives space for the popups to appear, even if they are large.
2021-11-18 15:00:44 +11:00
Marc Durdin
68135b9a5e fix(developer): use correct tike icon
Fixes #5924.

I'm not sure when this happened. But it should be right now.
2021-11-17 16:48:42 +11:00
Marc Durdin
5789d39deb fix(developer): render osk nicely on touch devices
Fixes #5905.

Touch devices now use a touch keyboard only in the web debugger.
2021-11-17 15:46:04 +11:00
Darcy Wong
c98ac9880c
Merge pull request #5841 from keymanapp/chore/common/crowdin-ff-ng
chore(common): Check in crowdin strings for Fulfulde Nigeria
2021-11-17 09:24:35 +07:00
Darcy Wong
31b4fee7d0
Merge pull request #5857 from keymanapp/common/crowdin-mfi
chore(common): Check in crowdin strings for Mandara (Wandala)
2021-11-16 09:24:07 +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
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
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
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
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
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
b8876c2459 docs: complete windows setup docs 2021-11-11 09:00:48 +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
Darcy Wong
0c19f04245 chore(common): Merge remote-tracking branch 'origin/master' into chore/common/crowdin-bwr 2021-11-08 07:28:53 +07:00
Darcy Wong
a0228c6c30 chore(common): Check in crowdin strings for Mandara (Wandala) 2021-10-26 15:18:51 +07:00
Darcy Wong
dddfc8c64c chore(common): Check in crowdin strings for Fulfulde Nigeria
These use the locale `ff-NG` in contrast to the existing Pulaar-Fulfulde locale `ff-ZA`.
2021-10-20 11:18:22 +07:00
rc-swag
c6e5aadde1
Merge pull request #5837 from keymanapp/docs/windows/update-testcase-description
docs(windows): add note to caps-lock-stores test
2021-10-20 06:45:26 +10:00
rc-swag
bccc075986
docs(windows): review comments
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2021-10-19 20:06:12 +10:00
rc-swag
efc25ccd1d
Merge pull request #5829 from keymanapp/docs/update-install-anywhere
docs(windows): add install apps from anywhere instructions
2021-10-19 20:04:34 +10:00
Darcy Wong
d54ba65eb4 chore(common): Check in crowdin strings for Bura-Pabir 2021-10-19 16:14:03 +07:00
Ross
1c3b96a706 docs(windows): missing CR in md for testing 2021-10-19 07:59:45 +10:00
Ross
bc0e4af58a docs(windows): add note to caps-lock-stores test
Add a note the caps lock stores manual test describing the problem
with the virtual box soft keyboad and the shift key for
test-caps-off-5 test.
2021-10-19 07:34:24 +10:00
Darcy Wong
c5005728da Merge remote-tracking branch 'origin/master' into chore/common/crowdin-ha 2021-10-16 16:03:29 +07:00
rc-swag
ab0f50d63e
Merge pull request #5803 from keymanapp/feat/windows/keyman-caps-lock-stores
feat(windows): Change caps to work with common core processor
2021-10-15 16:03:20 +10:00
rc-swag
12006b4fcf
docs: prefer anywhere with warning option
From a security perspective "Anywhere, but warn me before installing an app that's not from the Microsoft Store" would be the best option for a non-computer-savvy user, so maybe we should word it like this:

Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2021-10-13 08:11:40 +10:00
Ross
e713d8971b docs: resize images for help instructions 2021-10-12 13:38:23 +10:00
Ross
a322238183 docs: add install apps from anywhere instructions
Add the extra instructions for installing applications
from anywhere to the trouble shooting section of the Help.
2021-10-12 11:56:05 +10:00
rc-swag
e4eeb03ff8
Merge pull request #5808 from keymanapp/feat/windows/manual-keyboard-caps-tests
feat(windows): manual keyboard caps tests
2021-10-08 13:47:30 +10:00
Marc Durdin
a7f49d5291 chore: start documentation consolidation for Windows devboxes 2021-10-08 14:45:58 +11:00
rc-swag
daff5ec96d
feat(windows): apply cap stores review comments
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-10-08 10:49:05 +10:00
Ross
d89ac86514 feat(windows): rename test keyboads and parent folders 2021-10-08 10:36:35 +10:00
Ross
b081d04c0b feat(windows): add project and other aux files 2021-10-07 15:49:14 +10:00
Ross
0590c9c826 feat(windows): add comment in kmn about Test steps 2021-10-07 15:43:40 +10:00
Ross
31d7299170 feat(windows): add keyboard layout files for test caps stores 2021-10-07 15:43:39 +10:00
Ross
1b92aafec8 feat(windows): fix debug comment var name error 2021-10-07 15:35:13 +10:00
Ross
f1e55ab662 feat(windows): add in code comments explaining caps lock handling 2021-10-07 14:27:26 +10:00
Ross
96697e89ba feat(windows): Change caps to work with common core processor 2021-10-06 15:35:23 +10:00
Marc Durdin
024a36da9f
Merge pull request #5787 from keymanapp/chore/sentry-io
chore: sentry.io dsn 👮‍♂️
2021-10-06 07:32:43 +11:00
Marc Durdin
0cf4a3c512
Merge pull request #5723 from keymanapp/feat/developer/touch-layout-testing
feat(developer): touch layout testing 🎩
2021-10-05 17:40:26 +11:00