Commit graph

2864 commits

Author SHA1 Message Date
Keyman Build Agent
b3c8372cb9 auto: increment beta version to 15.0.219 2022-03-21 14:01:46 -04:00
Keyman Build Agent
f13c07acbf auto: increment beta version to 15.0.218 2022-03-19 14:02:39 -04: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
Keyman Build Agent
5d6bc10de9 auto: increment beta version to 15.0.217 2022-03-18 14:02:34 -04:00
Keyman Build Agent
cdc94f73b2 auto: increment beta version to 15.0.216 2022-03-17 14:03:41 -04:00
Marc Durdin
e3537e7bb7 fix(web): crash on focus before init
Fixes the following crash noted when testing on keymanweb.com, focusing
during the load process on a slow network.

```
helpers.ts:111 Uncaught TypeError: Cannot read properties of null (reading 'vkbd')
    at g.pageFocusHandler (keymanweb.ts:125:44)
    at sentryWrapped (helpers.ts:87:17)
```
2022-03-17 15:50:52 +11:00
Keyman Build Agent
a595b63422 auto: increment beta version to 15.0.215 2022-03-16 14:30:41 -04:00
Keyman Build Agent
ed5dd2f2bd auto: increment beta version to 15.0.214 2022-03-15 14:31:13 -04: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
4b15c4988e
Merge pull request #6340 from keymanapp/fix/web/5964-subkey-position-on-scroll-non-zero
fix(web): subkey touch position after scroll
2022-03-15 10:02:07 +11:00
Keyman Build Agent
7fe1997754 auto: increment beta version to 15.0.213 2022-03-11 13:02:26 -05:00
Keyman Build Agent
a64ead9287 auto: increment beta version to 15.0.212 2022-03-10 13:49:17 -05: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
455ce98dcc
Merge pull request #6353 from keymanapp/chore/common/cleanup-sh-color-globals
chore(common): cleanup sh global color variables
2022-03-10 19:39:28 +11:00
Marc Durdin
e1e82aacce fix(web): add test keyboards 2022-03-10 13:33:21 +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
Keyman Build Agent
64abc2914b auto: increment beta version to 15.0.211 2022-03-09 19:26:21 -05:00
Marc Durdin
6e1e7e8e7e chore: additional scripts 2022-03-10 10:26:15 +11:00
Marc Durdin
9f153ecc17 chore(common): cleanup sh global color variables
Some of the global color variables in shellHelperFunctions.sh were a
little dangerously named. This cleans that up and removes a couple of
redundant functions from other locations.

mac/bashHelperFunctions.sh should be removed and replaced with
references to shellHelperFunctions.sh -- but I wanted to leave that for
a separate branch.
2022-03-10 10:12:09 +11:00
Keyman Build Agent
6852aaadb4 auto: increment beta version to 15.0.210 2022-03-08 16:43:31 -05: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
f633174f9f fix(web): stop masking error
We are seeing this error thrown in some logs but it masks the underlying error.
2022-03-04 11:44:54 +11:00
Keyman Build Agent
db0753fa26 auto: increment beta version to 15.0.207 2022-03-02 01:45:00 -05:00
Marc Durdin
aeeffc3568
Merge pull request #6310 from keymanapp/fix/web/6072-stop-css-repeated-injection
fix(web): stop repeated CSS injection ✂
2022-03-02 12:50:16 +11:00
Marc Durdin
716d23d150
Merge pull request #6316 from keymanapp/fix/web/error-in-floating-osk-view-when-no-keyboard-active
fix(web): error in floating osk view when no keyboard active ✂
2022-03-02 11:40:27 +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
Marc Durdin
6734d824a5 fix(web): stop repeated CSS injection 2022-03-02 06:37:51 +11:00
Keyman Build Agent
7dbf3ee7e2 auto: increment master version to 15.0.205 2022-03-01 13:02:38 -05:00
Marc Durdin
e9baffb50e chore(android): Merge branch 'master' into feat/android/android-web-test-harness 2022-03-01 08:10:12 +11:00
Marc Durdin
6e9969b27c
Merge pull request #6272 from keymanapp/fix/web/5853-selection-not-working
fix(web): properly handle selection 🎢
2022-03-01 08:08:02 +11:00
Marc Durdin
79328eabab
Merge pull request #6249 from keymanapp/fix/web/5853-selection-is-damaged-by-newcontext-event
fix(web): add readonly mode for rule behavior finalization 🎢
2022-03-01 08:07:48 +11:00
Keyman Build Agent
7faf71d1a8 auto: increment master version to 15.0.204 2022-02-26 13:02:45 -05:00
Marc Durdin
7273028192 chore(web): add unit test for selection and matching rule 2022-02-25 15:06:11 +11:00
Marc Durdin
c331758ec1 chore: address review suggestions 2022-02-25 08:52:20 +11:00
Marc Durdin
b1ba2d24d7 chore: enable all test cases 2022-02-25 08:47:14 +11:00
Keyman Build Agent
40df30749c auto: increment master version to 15.0.203 2022-02-24 13:02:56 -05:00
Marc Durdin
bf2270aa69 chore(web): add smp tests for text selection 2022-02-24 15:59:16 +11:00
Marc Durdin
6ba75c54f5 chore(web): disable text selection tests on mobile 2022-02-24 14:14:15 +11:00
Marc Durdin
b58ce45ef7 fix(web): add Input text selection tests 2022-02-24 11:29:34 +11:00
Marc Durdin
9b84af8a2f fix(web): add unit tests for selection
This adds a set of unit tests for the TextArea element, initially, to
verify that selection and context are working as expected.
2022-02-24 11:25:21 +11:00
Marc Durdin
003665b6df chore(web): disable legacy edge testing
Legacy edge struggles with selection direction. We
no longer support it anyway, so disable testing.
2022-02-23 15:13:10 +11:00
Marc Durdin
b05fda1c6a fix(web): selection direction and tests
Selection direction was not maintained in mutations, which could have
unexpected consequences. Added support for selection direction to input
and textarea.

The functions `getTextBeforeCaret()` and `getTextAfterCaret()` are named
somewhat incorrectly, as they actually get the text before and after the
active selection (and a collapsed zero-length selection is equivalent to
the caret). It would be worth renaming these in a future refactor.

This PR fixes the unit tests so that caret position is tested correctly
with an active selection -- the caret can be at either the start or the
end of the selection, corresponding with the direction in which the user
originally selected the text. It also fixes the assumptions around the
above named functions for `input` and `textarea` types.

Note that selection interactions are still buggy with prediction
selections; these bugs were present in 15.0.118-alpha and I will tackle
them in an upcoming commit.
2022-02-23 15:13:07 +11:00
Marc Durdin
4bcfe37432 chore: add khmer_angkor to web test pages 2022-02-23 15:13:02 +11:00
Marc Durdin
cacbbee5cc fix(web): properly handle selection
Relates to #5853 and others.

Selection management was not working properly with the various
OutputTargets:

1. When there is a non-empty selection, rules have no context -- it's
   like new text.
2. Backspace over a selection deletes just the selection.
3. Typing a character replaces the selection, of course, and collapses
   the caret to the end of the new text.
4. `hasSelection` is a very strange name for `OutputTarget` descendants.
   It doesn't mean "has an active selection" but rather, kinda means
   "supports selection internally".
5. Added `isSelectionEmpty` which is used for some of the new selection
   rules above.

Note that the `touchAlias` OutputTarget class does not currently support
selection. I hope we can deprecate `touchAlias` with the use of
`inputMode` (#3030) in the future, rather than adding support for
selection.
2022-02-23 15:12:58 +11:00
Marc Durdin
6315d61ad9 chore(web): note chrome mobile emulation req
For android-harness, it must run in Chrome mobile emulation.
2022-02-23 08:30:59 +11:00
Marc Durdin
ac2cc93f2a fix(web): add readonly mode for rule behavior finalization
Relates to #5853.

Two things happened here:

1. Construction of Mocks made an assumption that the selection should
   always be deleted (outputTarget.ts:363). However, for NewContext and
   PostKeystroke processes, we don't want to change anything.

2. Even if nothing is changed, the transcription would emit what is
   in theory a no-op ruleTransform (insert="", deleteLeft=0,
   deleteRight=0). But apps would treat this as deleting the selection.

This fix goes a little broader than I would have preferred, but adds a
readonly mode to the transcription and mock model, so that we can
control explicitly when changes are applied to the text store.
2022-02-22 10:42:20 +11:00
Marc Durdin
6cd0f5d49a chore: add web_context_tests keyboard 2022-02-22 10:41:42 +11:00
Marc Durdin
c1c6c8ac84 feat(android): Android web-based test harness
This small harness simulates the Android app. I used it to try and
dig deeper into the interactions with selected text in #5853.

It is very rough, but with some extra effort we could use this
relatively easily for some low-level testing of KeymanWeb embedded
integration.
2022-02-22 10:38:20 +11:00
Keyman Build Agent
de8a1fe220 auto: increment master version to 15.0.202 2022-02-21 13:02:21 -05:00
Keyman Build Agent
149fba62b6 auto: increment master version to 15.0.201 2022-02-20 13:02:45 -05:00