Commit graph

740 commits

Author SHA1 Message Date
Marc Durdin
35adc5b970
Merge pull request #6630 from keymanapp/chore/developer/js-to-lmc
chore(developer): rename developer/js to developer/kmlmc 🎢
2022-07-06 05:42:19 +10:00
jahorton
aa8730acda fix(web): properly binds 'suggestionApplied' event handler 2022-07-04 09:19:51 +07:00
Joshua Horton
658865d0af
Merge pull request #6854 from keymanapp/fix/web/6853-refresh-layout-undef-guard
fix(web): null-guard for refreshLayout
2022-06-29 13:30:01 +07:00
Joshua Horton
581bda77aa
Merge pull request #6786 from keymanapp/fix/web/6735-sticky-backspace-on-resize
fix(web): clears repeating bksp on keyboard reload ⬅️
2022-06-29 13:28:01 +07:00
jahorton
25e21a0109 fix(web): a more polished version 2022-06-27 10:14:21 +07:00
jahorton
858966fa91 fix(web): null-guard for refreshLayout 2022-06-27 10:09:11 +07:00
Joshua Horton
f6841333a2
Merge pull request #6557 from keymanapp/change/web/5943-ie-rooting
change(web): drops old IE-related handling code
2022-06-24 08:35:03 +07:00
jahorton
1da9388c97 fix(web): keytip null-guard in shutdown 2022-06-17 09:10:29 +07:00
jahorton
774c6c24b4 fix(web): 'auto' actually mattered 2022-06-16 15:00:44 +07:00
jahorton
612ffdd06a fix(web): oh yeah, clear the key preview too 2022-06-16 13:38:41 +07:00
jahorton
a4e506d867 fix(web): clears repeating bksp on keyboard reload 2022-06-16 12:17:55 +07:00
jahorton
14b1485772 fix(web): key tip constraint logic requires .bottom CSS 2022-06-16 10:13:50 +07:00
Joshua Horton
3cd5ae2b33
chore(web): applies code suggestion
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-06-14 12:52:39 +07:00
jahorton
d23b349106 fix(web): row height layout calcs now consider layer-group padding 2022-06-13 13:30:13 +07:00
Joshua Horton
3a73a12561
Merge pull request #6714 from keymanapp/change/web/6646-longpress-flick-thresholding
change(web): adjusts minimum distance needed for quick-display of subkeys
2022-06-10 13:30:24 +07:00
jahorton
15ae34a0c8 change(web): increases min dist for a longpress-flick timer shortcut 2022-06-06 08:58:56 +07:00
jahorton
92d1c10209 fix(web): osk display-state setting tracking 2022-06-01 12:24:22 +07:00
jahorton
75964b0077 chore(web): drops non-pred text dependence on es6-shim 2022-05-31 09:11:20 +07:00
jahorton
0601f682b0 chore(web): a bit more cleanup 2022-05-31 09:11:19 +07:00
jahorton
a38c01e5bb fix(web): preserves row height rounding 2022-05-25 15:36:53 +07:00
jahorton
2f1237e352 fix(web): osk shrinkage from rounding 2022-05-25 15:12:25 +07:00
jahorton
0f051edee0 change(web): addresses PR concerns 2022-04-29 10:08:24 -05:00
Joshua A. Horton
d4464b92e5 fix(web): fixes fat-finger distrib when subkey selected 2022-04-26 10:10:21 -05:00
Marc Durdin
2eb10663ba
chore(web): Apply suggestions from code review
Co-authored-by: Joshua Horton <joshua_horton@sil.org>
2022-04-19 06:47:31 +10:00
Marc Durdin
d2d6b4a12d chore: address review comment 2022-04-13 08:18:54 +10:00
Marc Durdin
0ad1d496d3 fix(android): key tip sticky with multitap
Fixes #6489.

The issue arose in multitap scenarios, where the tip display state
became desynchronised with the actual display state as maintained in
the Android code.

The fix I applied was to reduce some of the state checks into the js
wrapper android-host.js. This is not ideal. The state machine for key
tip display is scattered across four functions in three files:

* visualKeyboard.ts: VisualKeyboard.highlightKey
* visualKeyboard.ts: VisualKeyboard.showKeyTip
* embedded/keytip.ts: KeyTip.show
* android-host.js: oskShowKeyPreview / oskClearKeyPreview

I have moved the actual re-creation check for the tip to the lowest
level functions -- those in android-host.js. But a more detailed look at
the state machine and a refactoring would certainly be worthwhile.
2022-04-07 15:27:41 +10:00
Marc Durdin
b7ce99480f feat(web): prediction casing follows current layer
Fixes #6455.

This involved adding an extra hint to the data passed into the lexical
model layer, being the CasingForm that the current layer wants to use.

Given there are several entry points to the lexical model layer, this
meant a few places where we needed to check the current layer.

I refactored the very long function `InputProcessor.processKeyEvent` to
extract out the `buildAlternates` function. There should be no
functional changes to the `buildAlternates` code. But it makes
`processKeyEvent` significantly easier to read.
2022-04-01 16:20:50 +11:00
Marc Durdin
c0248bec1b
Merge pull request #6432 from keymanapp/fix/web/shifted-key-cap
fix(web): *Shifted* showed unshifted key cap
2022-03-29 12:36:12 +11:00
Marc Durdin
46807d7af2 fix(web): *Shifted* showed unshifted key cap
While this was done in code as a global override, probably following
Apple stylistic changes, it is better to leave this to the keyboard
developer to decide on.
2022-03-28 09:02:22 +11:00
Marc Durdin
295f25144d
Merge pull request #6383 from keymanapp/fix/web/5929-ios-popup-positioning-and-style
fix(web): ios popup positioning and style
2022-03-28 04:46:00 +11:00
Marc Durdin
b3ddf633df fix(web): adjust calc for callout height 2022-03-25 09:10:29 +11:00
Marc Durdin
3858a4c9e5 fix(web): further iOS adjustments 2022-03-24 07:35:28 +11:00
Darcy Wong
19f1d4f5a7 chore(android): Merge remote-tracking branch 'origin/beta' into fix/android/subkey-move 2022-03-23 13:05:25 +07:00
Marc Durdin
5c388d1d7e
Merge pull request #6366 from keymanapp/feat/web/6364-new-layer-old-layer-replaces-layerchanged
feat(web): `&newLayer` and `&oldLayer`
2022-03-23 16:53:34 +11:00
Marc Durdin
adf3fe28c9 fix(web): tweak iOS key preview and longpress dimensions
Adjusts the dimensions to use pixel boundaries to prevent antialiasing
for some of the key preview and longpress popups, and adjusts horizontal
positioning of key preview to center more precisely, for iOS.
2022-03-23 08:23:29 +11:00
Marc Durdin
558a742a45 fix(web): adjust callout height 2022-03-22 10:02:36 +11:00
Marc Durdin
767d278f87
Merge pull request #6357 from keymanapp/fix/web/bounding-rect-offset
fix(web): bounding rect offset was incorrect
2022-03-19 13:13:19 +11:00
Darcy Wong
70ec9b7096 fix(web): Don't update base key if popups displayed 2022-03-17 10:58:48 +07:00
Marc Durdin
dde56e6b90 fix(web): adjust positioning for longpress popup
Adjusts positioning calculations for longpress popups and corresponding
styles to make it consistent across all platforms, particularly iOS.
2022-03-17 10:20:19 +11:00
Marc Durdin
86b4b82661 fix(web): key preview position was inconsistent on iOS
Adjusts calculations for key preview and ensures we use box-sizing:
content-box in all circumstances, to make it consistent across all
platforms.
2022-03-17 10:19:10 +11:00
Marc Durdin
a2aef99c3e fix(web): font size on key preview
Font size adjustment needed an override for the key preview to prevent
it using the base key font size as a starting point.
2022-03-17 10:15:40 +11:00
Marc Durdin
7a5d1b964f chore(web): Merge branch 'beta' into feat/web/6364-new-layer-old-layer-replaces-layerchanged 2022-03-17 04:55:25 +11:00
Marc Durdin
d3136b8860 fix(web): ios popup positioning and style
Fixes #5929.
Fixes #6381.

This fixes four separate issues with the longpress popups and key
previews:

1. The key preview was offset by a couple of pixels (unreported issue).
2. The background 'shim' did not cover the key caps, which caused them
   to look startlingly white when the rest of the background greyed
   down (#5929).
3. The popup menu was incorrectly wrapping to two rows due to sizing
   model mismatches (#6381).
4. The popup menu would be realigned incorrectly for the in-app
   keyboard, when moving it to keep it in the keyboard area (#5929).
2022-03-16 11:24:02 +11:00
Marc Durdin
1038379c41
Merge pull request #6351 from keymanapp/fix/web/caps-state-tracking-for-touch
fix(web): caps state tracking for touch
2022-03-15 10:04:45 +11:00
Marc Durdin
45c5f8a1ea chore(web): remove 0 from store defaults 2022-03-13 08:31:15 +11:00
Marc Durdin
b23df3fbc8 feat(web): &newLayer and &oldLayer
Fixes #6364.

Removes `&layerChanged` and adds `&newLayer` and `&oldLayer` system
stores with the additional nuances around values as described in #6364.
2022-03-13 08:29:15 +11:00
Marc Durdin
ada527bd80 fix(web): bounding rect offset was incorrect
When embedding the On Screen Keyboard into a page, the calculation for
the bounding rectangle only took into account the first offsetParent,
which meant it would get the offset incorrect when there were multiple
layers of offsetParents.

Once I changed to using getAbsoluteX / getAbsoluteY, this also corrects
for scroll with window.pageOffsetY, so we can eliminate that special
case for fixed positioning.

This was observable in the Web Developer test window, where interaction
with the bottom row of the keyboard in touch mode was not working
correctly, in 15.0.210-beta.
2022-03-11 04:34:36 +11:00
Marc Durdin
f355722191 fix(web): back out caps lock and refix
The Caps Lock change I made in the previous commit broke
desktop Caps Lock handling. The fix was a little more
convoluted. Turns out that _UpdateVKShift is also pretty
crufty. I simplified it, removing dead code.
2022-03-10 13:31:06 +11:00
Marc Durdin
272c1f0d1c fix(web): subkey touch position after scroll
Fixes #5964.

It seems that the test for subkey position was incorrect when the
document had been scrolled. Removing the test for `fixed` positioning
resolves the issue.
2022-03-08 17:27:16 +11:00
Marc Durdin
b5615e3a4b fix(web): error in floating osk view when no keyboard active
This fixes an issue that arises when loading the Keyman Developer Server
home page and there are registered keyboards, but no keyboards active.
The floating osk view would throw an exception because it would attempt
to set the title of the view from the active keyboard, which is `null`.
2022-03-02 08:46:10 +11:00