Commit graph

352 commits

Author SHA1 Message Date
Marc Durdin
da32fbc255 fix(web): popupBaseKey null check
Fixes #5912.

Corresponding alpha fix coming.
2021-11-19 13:46:15 +11:00
Marc Durdin
22cd0e2675 chore: avoid error when running in unit tests 2021-11-17 07:32:49 +11:00
Marc Durdin
d55df2e630 fix(web): remove canvas use for iOS compatibility 🍒
Fixes #5831.

Cherry-pick of #5915.

iOS 15 has a significant crashing bug whereby use of a canvas element
completely crashes the browser in some contexts. In particular, we have
observed this when using a WKWebView in a keyboard extension without
'Allow Full Access' switched on.

Keyman uses canvas element to draw a nice looking key preview (key tip)
on iPhones. This is a critical issue for Keyman for iPhone. Keyman for
iPad is not affected because the iPad version does not use key previews.

The resolution here is to remove use of the canvas drawing for key tips
and use a simplified pure HTML/CSS shape. I have not conditioned this
fix on platform; I have currently opted to apply this to all platforms.

This issue will be reported to Apple for resolution. The issue applies
so far to iOS 15.0, 15.1.
2021-11-16 17:30:04 +11:00
Darcy Wong
87b580d998 fix(common/core/web): Remove empty rows in OSK 2021-09-16 10:29:58 +07:00
jahorton
3bcf3039aa fix(web): restores another change lost during rebase merge conflicts 2021-07-27 11:48:23 +07:00
jahorton
1730ef6315 fix(web): restores code lost due to cherrypick rebase conflicts 2021-07-27 11:46:21 +07:00
jahorton
8b9066e109 fix(web): uninitialized layer index before OSK load 2021-07-27 11:41:39 +07:00
Marc Durdin
5e1a17f142
Merge pull request #5408 from keymanapp/feat/ios/cherry-pick/spacebar-text-controls
feat(ios): add spacebar text controls 🍒 🌌
2021-07-20 15:58:46 +10:00
Marc Durdin
255123f5c1
Merge pull request #5406 from keymanapp/feat/cherry-pick/spacebar-text
feat(web): spacebar text controls 🍒 🌌
2021-07-19 09:02:18 +10:00
jahorton
897c8d5bfe fix(web): fixes osk resize-popping effect 2021-07-06 12:54:49 +07:00
Marc Durdin
93bd778753 feat(ios): add spacebar text controls 🍒
Cherry-pick of #5365.

Relates to #949.

Mirror of #5349 (Android), for iOS.

* Adds setSpacebarText() API to Keyman Engine for iOS
* Adds displayName API to Keyman Engine for iOS
* Sets default spacebar text to keyboard name for FirstVoices Keyboards
* Does not add preference UI
2021-07-01 16:38:13 +10:00
Marc Durdin
3e77e84278 feat(web): spacebar text controls
Relates to #949.

* Adds optional `displayName` property to keyboard stubs: if present,
  this will override the name on the spacebar.

* Adds optional `spacebarText` member to `keyman.options`. This defaults
  to `SpacebarText.LANGUAGE_KEYBOARD`, and can be one of:

  ```
  SpacebarText.LANGUAGE
  SpacebarText.KEYBOARD
  SpacebarText.LANGUAGE_KEYBOARD
  SpacebarText.BLANK
  ```

* Sets the display pattern for LANGUAGE_KEYBOARD to be
  "language - keyboard" instead of "language (keyboard)", which
  reduces the number of parentheses visible on the spacebar.
2021-07-01 15:09:33 +10:00
jahorton
ac69353476 fix(web): reuses OSK width calc 2021-05-17 08:05:27 +07:00
jahorton
8dff00c93d fix(web): popup key positioning logic 2021-05-17 08:05:27 +07:00
Darcy Wong
b8716a21a7 fix(web): Make banner initialization more robust 2021-04-26 15:23:57 +07:00
Marc Durdin
c8f67b3754
Merge pull request #4957 from keymanapp/fix/web/cherry-pick/publish-restorePosition
fix(web): publish restorePosition() function 🍒
2021-04-22 16:14:43 +10:00
Marc Durdin
ff9cdd7376 fix(web): move function 2021-04-22 14:44:40 +10:00
Marc Durdin
ecb760780e fix(web): reset dfltX and dfltY in restorePosition
Fixes #4948.

This resets `keyman.osk.dfltX` and `keyman.osk.dfltY` in the
`restorePosition()` function, except when the user clicks the pin (or
`true` passed in for `keepDefaultPosition` parameter). It also moves the
grungy `window.event` hack out of the function and into a private
handler specifically for the pin div `onclick`.

I didn't want to reset `dfltX` and `dfltY` when the user clicks on the
pin, because that is a change in behaviour.
2021-04-22 14:44:39 +10:00
Marc Durdin
5ed38180da Update web/source/osk/oskManager.ts
Co-authored-by: Joshua Horton <joshua_horton@sil.org>
2021-04-22 14:44:38 +10:00
Marc Durdin
ffdf71f6ed fix(web): publish restorePosition() function
This makes the `osk.restorePosition()` function public and makes it work
even if the OSK is not presently visible. Also DRY out the repeated
implementation.
2021-04-22 14:44:37 +10:00
jahorton
7a90ced6cf fix(web): fixes subkey lookup for fat-finger processing 2021-04-22 11:40:40 +07:00
jahorton
9439090205 fix(common/models): fixes overly zealous thresholding near word starts 2021-03-23 09:13:02 +07:00
jahorton
6298bb27f6 fix(web): first-pass workaround for popup-key corrections 2021-03-17 12:58:41 +07:00
jahorton
eb311bdda5 chore(common/core/web): adjustments from PR feedback 2021-03-17 12:02:51 +07:00
jahorton
7cbb78ea45 fix(web): uses new IDs as needed outside of web-core 2021-03-17 10:26:58 +07:00
jahorton
399c7fb6b4 fix(web): fixes lack of respect for underlying-key display settings 2021-03-03 08:55:37 +07:00
Joshua Horton
4794337d42
Merge pull request #4516 from keymanapp/fix/web/3910-namespaced-css-class
fix(web): removes package namespacing from kbd's CSS class
2021-02-25 15:09:25 +07:00
jahorton
6ca508a314 fix(web): removes package namespacing from kbd's CSS class 2021-02-24 14:26:10 +07:00
jahorton
ec61fa22d2 change(web): reverts incomplete tweak 2021-02-24 12:33:23 +07:00
jahorton
567df44a1a fix(web): mobile layouts for static keyboards now %-based 2021-02-24 12:10:37 +07:00
Joshua Horton
df3f77b857
Merge pull request #4370 from keymanapp/fix/web/3294-keyboard-layout-fouc
fix(android, ios): eliminates OSK layout flashing from predictive text banner display
2021-02-01 14:21:11 +07:00
jahorton
a67e26fb1c fix(web): removes stylesheets from unloaded keyboards 2021-01-29 12:54:50 +07:00
jahorton
78c7821f9f change(web): banner display no longer deferred 2021-01-29 11:31:56 +07:00
Joshua Horton
17fd83deec
Merge pull request #4270 from keymanapp/fix/web/4026-rescale-tall-keys
fix(web): dynamic font downscaling for OSK keys
2021-01-22 12:27:43 +07:00
Joshua Horton
2f43b68a81
Merge pull request #4308 from keymanapp/fix/web/lang-menu-key-highlight
fix(web): language menu key highlighting
2021-01-22 09:44:19 +07:00
jahorton
b564341b46 fix(web): dynamic fontsize should only on key-text 2021-01-22 09:20:59 +07:00
jahorton
ed5866ffda change(web): timeout was already bound 2021-01-22 08:39:28 +07:00
jahorton
16ca7ecc80 change(web): default subkey change from review comment 2021-01-22 08:24:25 +07:00
jahorton
efda46e968 fix(web): language menu key highlighting 2021-01-21 13:34:48 +07:00
jahorton
cc5ba47603 change(web): adds 'break' for perfect-match case 2021-01-21 12:23:12 +07:00
jahorton
c5e67034e0 docs(web): enhances comment 2021-01-21 12:22:14 +07:00
jahorton
2db9c02fbf fix(web): default popup key selection, space highlight after popup 2021-01-21 12:09:51 +07:00
jahorton
693018a2e2 chore(web): Merge branch 'beta' into fix/web/4026-rescale-tall-keys 2021-01-21 10:32:36 +07:00
Joshua Horton
19cd7e3bd5
Merge pull request #4279 from keymanapp/fix/web/4240-keyboard-load-optimizations
fix(web): OSK loading efficiency
2021-01-21 10:21:06 +07:00
jahorton
03608f1be1 fix(web): better em-font-size detection, handles absolute spec on _Box 2021-01-20 16:35:18 +07:00
jahorton
20ef2b359a change(web): addresses PR comments 2021-01-20 16:06:08 +07:00
jahorton
0093c8b991 fix(web): default kbd ui name is now generic 2021-01-19 13:35:39 +07:00
Joshua Horton
4a6973c67f
Merge pull request #4282 from keymanapp/fix/web/3513-special-key-preview
fix(web): no key previews for special keys reliant on keyboard-specific OSK font
2021-01-19 11:56:13 +07:00
Joshua Horton
15947400bb
fix(web): previous commit had accidental recursion in properties 2021-01-19 11:55:49 +07:00
Joshua Horton
7d4763e902
Merge pull request #4255 from keymanapp/fix/web/4026-oversized-key-text-valign
fix(web): uses CSS line-height to vertically center oversized OSK keycaps
2021-01-19 10:39:44 +07:00