Commit graph

80 commits

Author SHA1 Message Date
Darcy Wong
a82df0e0ea fix(web): Add additional checks on className.indexOf 2022-11-09 12:48:56 +07:00
Joshua A. Horton
6dec90c868 chore(web): and another 2022-10-07 08:57:01 +07:00
Joshua A. Horton
c60f2f5d4e chore(web): more dead code cleanup 2022-10-07 08:56:29 +07:00
Joshua A. Horton
a5c8293d27 chore(web): addresses some PR review concerns 2022-10-04 09:40:52 +07:00
Joshua A. Horton
897d3d7475 fix(web): content-editable attachment issue post-rebase 2022-09-29 08:17:56 +07:00
Joshua A. Horton
ccea30e9c4 fix(web): fully drops simulated-element touch handlers 2022-09-29 08:17:54 +07:00
Joshua A. Horton
3218b9a9f3 fix(web): fixes touch-based focusing issues with OSK interactions 2022-09-29 08:17:52 +07:00
Joshua A. Horton
8b346d4faf chore(web): properly places code that crept into #7345 2022-09-29 08:17:51 +07:00
Joshua A. Horton
366efe0e34 feat(web): enables non-design-mode iframes for touch 2022-09-29 08:17:50 +07:00
Joshua A. Horton
5d74d89e2c chore(web): better blur-event swallowing 2022-09-29 08:17:48 +07:00
Joshua A. Horton
fe585b88af chore(web): removal of 'kmw_ip' checks, references 2022-09-29 08:17:47 +07:00
Joshua A. Horton
dfca726cf1 chore(web): fully removes touch-alias stuff 2022-09-29 08:17:45 +07:00
Joshua A. Horton
7bf29cecfd change(web): disconnects touch alias hooks, adds .inputMode 2022-09-29 08:17:44 +07:00
Joshua A. Horton
0bbc3e7375 chore(web): reverts accidental branch creep 2022-09-27 08:59:56 +07:00
Joshua A. Horton
be6bf141c1 fix(web): vscode merge got in the way 2022-09-22 15:46:49 +07:00
Joshua A. Horton
dce7ef74b2 fix(web): fixes for non-focus-related unit-test breaks 2022-09-22 15:44:56 +07:00
jahorton
082d96a605 chore(web): roots MSevent refs 2022-05-31 09:11:19 +07:00
jahorton
00c717371f chore(web): roots _GetEventObject 2022-05-31 09:11:18 +07:00
jahorton
0abf33829a chore(web): roots out _IsIEEditableIframe 2022-05-31 09:11:17 +07:00
jahorton
eb62bcb7ee chore(web): rips out document.createEvent 2022-05-31 09:11:16 +07:00
Marc Durdin
fcf78bcd94 chore: merge master into branch 2022-05-27 13:11:23 +10:00
jahorton
efcc4276a3 change(web): performCaretSearch now member of TouchAliasElement 2022-04-25 09:25:13 -05:00
jahorton
56b4c5ac50 fix(web): caret position when page is scrolled 2022-04-20 15:28:35 -05:00
jahorton
48fb1371c0 docs(web): better comments & var naming 2022-04-20 15:02:57 -05:00
jahorton
94edc5c9da fix(web): mobile device caret positioning 2022-04-20 14:52:33 -05:00
jahorton
1c394c2744 change(web): further clarifies performCaretSearch 2022-04-20 13:03:32 -05:00
jahorton
cd666d0346 fix(web): major performance boost, fixes search bound logic bug 2022-04-20 12:29:00 -05:00
Marc Durdin
0ac04d0530 chore(web): Merge branch 'beta' into chore/web/no-more-lerna 2022-04-12 21:17:15 +10:00
Marc Durdin
4d94786852 chore(web): replace lerna with npm workspaces and ts projects
Fixes #6320.

Part 1 of moving from lerna to a simpler, maintained monorepo solution,
using TypeScript Projects and NPM Workspaces.

There is more work to be done here. At this point, KeymanWeb builds and
runs without errors, but the built file is substantially different,
mostly in include order.

Using TypeScript Projects, we move away from the need to run build
scripts in various locations for almost all the Typescript modules.

TODO: Embedded versions and tests have not been verified.

TODO: developer/server is not yet verified.

TODO: developer/js (needs a rename!) is not yet verified.

TODO: Currently, the predictive-text folder needs refactoring to move
the construction of the worker wrapper out of the Predictive Text build
and into the final assembly of keymanweb.js (as it should be valid to
run it as a separate .js anyway).

TODO: Most of the `<reference>` paths need to be re-verified. Ideally
there should be no references outside the current module for any given
.ts.

TODO: The embedded vs browser vs node (headless) builds should be tidied
up for consistency so that it's obvious what depends on what. This is
currently messiest in the predictive-text folder, where the output names
diverge from the filenames and the various files are mixed in the same
folder (as evidenced by the exclusions listed in each tsconfig.json).

TODO: `npm install` should be removed from most build scripts and
instead `npm ci` (#6196) should be run only once from the top-level
folder for any given build. I've had eliminated side-effects from the
`install` action for npm, which makes it easier to reason about state.

TODO: verify_npm_setup and related functions can probably be eliminated.

TODO: most of the build scripts should be largely eliminated for web.

TODO: several ts projects use inconsistent output folders.

TODO: it may be possible to generate a .d.ts for models/types so that
we can use a consistent reference for those as well.

TODO: build.sh, tsconfig.json should always be in the module's top-level
folder, not in a subfolder such as src (e.g. see input-processor/src,
keyboard-processor/src, web/source).

TODO: resources/web-environment should be in common/web.

TODO: other js node_modules imports should be wrapped like es6-shim.

TODO: fix up the publish code for npm modules

TODO: eliminate version numbers from package.json if possible?

Whew, that's most of the stuff I noticed!
2022-04-12 21:02:33 +10:00
Marc Durdin
49eb062c65 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-08 16:14:01 +10:00
Marc Durdin
e616900cad
Revert "feat(web): prediction casing follows current layer" 2022-04-08 14:50:32 +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
0c0bb420b5
Merge pull request #5963 from keymanapp/feat/web/3621-newcontext-group
feat(web): Start of Sentence support - part 1 🕊
2022-01-17 12:04:29 +11:00
Marc Durdin
3f35cc0bf8 chore(web): Merge branch 'master' into feat/web/3621-newcontext-group 2021-11-29 10:22:22 +11:00
Marc Durdin
e98930dedb
Merge branch 'master' into fix/web/5779-font-scaling-in-osk 2021-11-29 09:12:15 +11:00
Marc Durdin
45821fcb1b fix(web): adjust tablet font scaling
This makes two corrections:

1. Removed an obsolete test for screen size based on dpi, which is
   unreliable, meant that we had been treating many Android tablets as
   phones (domManager.ts).
2. Font scale for Android tablets had some incorrect assumptions around
   keyboard height and devicePixelRatio, which I was able to simplify
   into a fixed ratio, and was much better across all devices I
   tested (however, all emulated in Chrome).
2021-11-29 08:56:41 +11:00
Marc Durdin
d6982898a8 fix(web): restore dragEnd function
Relates to #5947.

I resolved a merge conflict in #5947 in the wrong direction and
accidentally deleted the `dragEnd` function. This restores it.
2021-11-29 07:40:04 +11:00
Marc Durdin
c7b83f9f1f
Merge branch 'master' into fix/web/5944-save-focus-for-eurolatin-osk 2021-11-29 06:35:53 +11:00
Marc Durdin
f300e81381
Merge branch 'master' into fix/web/5909-shorten-setfocustimer 2021-11-24 07:11:34 +11:00
Marc Durdin
dcedb15b69 chore: cleanup comments and defines 2021-11-23 16:08:19 +11:00
Marc Durdin
bbbf1afce7 feat(web): basic support for newContext
Relates to #3621.

Adds basic support for `begin newContext`.
2021-11-23 15:00:47 +11:00
Marc Durdin
9162d575ce fix(web): support saving focus for custom OSK interactions
Fixes #5944.

If a custom OSK, such as sil_euro_latin, calls `keymanweb.KSF()` or
`keymanweb.saveFocus()`, this ensures that the next focus change is
ignored, which prevents the OSK from being dismissed as soon as it is
clicked on.

This is a regression, probably arising in version 10.0.

Note: `_SelectionChange` is no longer used or referenced, so I removed
it as part of this fix.
2021-11-19 12:58:53 +11:00
Marc Durdin
cceb2f35b5 fix(web): shorten setFocusTimer()
Fixes #5909.

The `setFocusTimer()` delay was 1000ms. However, it seems that a much
shorter delay accomplishes the same outcome for switching between
controls, as the important factor is to block asynchronously-arriving
events from cancelling the OSK / focus controls for touch alias
elements.

I have set the delay to 50ms. This is fast enough that a click in a
control followed by a click on the page area will always cancel the OSK,
but gives the space needed for queued focus/blur events have time to be
processed before cancelling the timer.
2021-11-19 11:22:21 +11:00
Marc Durdin
c2c7e00e94 fix(web): reset scroll anchor on touchend
Fixes #5313.
2021-11-17 10:37:01 +11:00
jahorton
09f4aed77e chore(web): Merge branch 'refactor/web/active-element-integrations' into refactor/web/osk-activation-and-visibility 2021-09-21 09:59:46 +07:00
jahorton
a1516d194d fix(web): focus-timer preserves activation on Android 2021-09-21 09:23:11 +07:00
jahorton
ffc381fcb6 chore(web): Merge branch 'refactor/web/active-element-integrations' into refactor/web/osk-activation-and-visibility 2021-09-17 08:38:49 +07:00
jahorton
430b636b22 fix(web): independent keyboard & touch-focus management 2021-09-15 10:28:58 +07:00
jahorton
881a2759f2 chore(web): Merge branch 'refactor/web/active-element-integrations' into refactor/web/osk-activation-and-visibility 2021-09-03 12:45:51 +07:00
jahorton
68425763c6 fix(web): fixes touch-mode focusing issue in unit tests 2021-09-03 12:42:34 +07:00