Commit graph

39 commits

Author SHA1 Message Date
Marc Durdin
44ddf1e9aa
Merge branch 'master' into feat/web/3620-caps-layer 2022-01-17 12:26:32 +11:00
Marc Durdin
1d92385928 chore(web): start-of-sentence in manual test pages 2021-12-09 05:59:16 +01:00
Marc Durdin
62796e3489 feat(web): Caps Layer and double-tap gesture
Fixes #3620.

Implements the Caps Lock layer support and the double-tap gesture on the
shift key to access it.

The double-tap gesture has been implemented with a view to extension to
support other multi-tap gestures in the future. However, for now, it is
limited to supporting the Shift key, if and only if the keyboard
includes a Caps layer.

The reason for this v15 limitation is that multi-tap on regular keys
would involve either rewinding the previous keystroke (the first tap),
or forcing keyboard developers to consider 'rota' style rules in their
keyboards to support the multi-tap gestures, as we need to make sure
that the first tap is accepted and processed for immediate feedback.
This needs more design, to avoid unnecessary complexity in the keyboards
and/or the rewinding of the keystroke (even though that is conceptually
supported in Keyman Engine for Web already). Basically, we don't want to
constrain the way that a keyboard author may use the multi-tap gesture
by hard-coding the rewind, but neither do we want to make all multi-tap
gestures needlessly complex to author.

The shift key (and other modifiers, potentially in future) needs special
support for multi-tap as the key that is being tapped changes with the
layer change. This is currently managed through recognising `K_SHIFT` in
the key id.

I have tried to follow the `PendingGesture` pattern for multi-tap, and
the gesture itself supports a series of taps, not just a double-tap. The
maximum time to complete the tap series is 125msec * number-of-taps, so
for a double-tap is 250msec.

The changes to support a Caps Lock layer itself were minimal; just
adding the `text.KeyboardProcessor.getStateFromLayer` function and
calling it during `KeyEvent` construction. The remaining changes relate
to the multi-tap gesture.

Minor changes:
* I moved `constructNullKeyEvent` to `KeyEvent` in order to make it
  more accessible to other classes.
* The multi-tap gesture does not have a promise to complete, so that is
  now an optional member of the `PendingGesture` interface.
2021-12-01 08:59:43 +11:00
Marc Durdin
c2c7e00e94 fix(web): reset scroll anchor on touchend
Fixes #5313.
2021-11-17 10:37:01 +11:00
Marc Durdin
920861e7bb chore(web): unit tests for fat finger and variable store 2021-09-27 10:17:12 +10:00
Joshua Horton
5748c472c1
Merge pull request #5728 from keymanapp/chore/web/inline-osk-test-page
chore(web): inline osk test page 🧵
2021-09-23 10:57:04 +07:00
Marc Durdin
5162a028cc chore(web): inline osk test page
Adds a page to experiment with the inline osk.
2021-09-21 07:30:15 +10:00
Darcy Wong
7acd0b4ed5 fix(common/core/web): Remove empty rows in OSK 2021-09-15 14:20:52 +07:00
Darcy Wong
85000ef5df fix(web): Have util.wait check useAlerts option 2021-08-03 10:33:16 +07:00
jahorton
4c4845ae7e feat(web): ui-module test pages 2021-07-21 09:24:26 +07:00
Marc Durdin
e56f377d69
Merge branch 'master' into feat/web/949-spacebar-text-controls 2021-06-28 16:01:26 +10:00
Marc Durdin
8c3f20c316 chore(web): add spacebarText manual tests 2021-06-28 10:32:26 +10:00
Darcy Wong
e0c2cca919 test(web): Make separate test page for Promise API 2021-06-17 11:16:38 +07:00
Marc Durdin
4d969758aa chore(web): add test page for playing with CKEditor
Ref https://community.software.sil.org/t/asp-net-keyman-web-with-ckeditor/4801
2021-05-17 05:52:21 +10:00
Marc Durdin
0f0082aee8 chore(web): cleanup testing for osk movement 2021-04-22 13:51:21 +10:00
Marc Durdin
54efc34454 fix(web): support for notany() and context()
Fixes #917.

This PR goes along with #3816 to enable support for `notany()` and
`context()` references from the output.
2020-11-04 14:37:52 +11:00
jahorton
8f3b7b130a feat(web): manual test for blocked keystrokes 2020-10-19 15:06:37 +07:00
jahorton
15c584c8f6 feat(common/models): significant progress - decent suggestions 2020-09-03 10:35:21 +07:00
jahorton
849cda09bb feat(web): starts base-level sentry linkage/testing setup 2020-05-13 10:07:12 +07:00
jahorton
3cdffae116 fix(web/engine): Fixes variable stores, adds test page 2020-03-24 12:50:59 +07:00
jahorton
f57dcdc464 fix(web): Cuts keyboard event handlers for documentation ele 2020-03-10 13:55:21 +07:00
Joshua A. Horton
20b89e52d6 Prototype predictive ui test page! 2019-04-04 10:34:49 +07:00
Joshua A. Horton
2c30633e5f Implements test keyboard and fix for 'undefined' font issues. 2018-12-17 15:38:00 +07:00
Joshua A. Horton
f0812d96a7 Merge branch 'master' into web-248-iOS-landscape-display 2018-12-06 08:23:16 +07:00
Darcy Wong
28ea3b48e3 Add KMW test page 2018-11-22 09:31:47 +07:00
Joshua A. Horton
02404b83c4 Adds a page in the manual testing section for the Toolbar UI. 2018-10-24 13:46:38 +07:00
Darcy Wong
ec7831a004 Add test page for KMW 2018-10-02 15:47:24 +07:00
Marc Durdin
27c565b0e2 Reworked several aspects of platform constraints esp. regarding unknown constraints. Rewrote keyboard and spreadsheet to facilitate testing more reliably. 2018-06-11 15:07:55 +07:00
Marc Durdin
4a2dc37d6d Add test keyboard for mnemonic layout on web 2018-05-09 08:50:42 +07:00
Joshua A. Horton
e2a8e13c07 Created an integrated rotation testing page. Needs more work. 2018-04-30 15:39:31 +07:00
Joshua A. Horton
918ecda82b Relocated a test out of the samples folder 2018-03-09 13:28:19 +07:00
Joshua A. Horton
3dbef51e9a Fixes #544. 2018-01-26 10:50:17 +07:00
Joshua A. Horton
2502b52786 Re-did the build product directory structure again. 2018-01-22 14:07:16 +07:00
Joshua A. Horton
232d1ff005 Patches up the /testing pages to work with the new TS layout. 2018-01-08 10:06:32 +07:00
Joshua Horton
0ac1377d76 Merge branch 'master' into web-349-core-refactoring 2017-11-13 13:05:52 +07:00
Joshua Horton
bd414939ac Addresses #271, disables 'indirect' check. 2017-11-06 14:48:40 +07:00
Joshua Horton
89958d64ef Developed a test page for issue #5; the issue was no longer valid / was pre-fixed. 2017-11-06 08:43:34 +07:00
Joshua Horton
9ca227626d Refactors the samples and testing pages appropriately to the new namespace. With a little housekeeping and bug fixes related to work on this issue. 2017-10-12 09:49:39 +07:00
Joshua Horton
61de8ffe3e Refactored the samples section to create a separate testing section. 2017-10-11 15:31:06 +07:00