Commit graph

33096 commits

Author SHA1 Message Date
Eberhard Beilharz
e31cf4a1d8
chore(linux): add non-surrounding-text feature to tests
This also fixes a failing test (`048 - modifier keys keep context`)
if surrounding text is not supported. If the user presses the
capslock key we shouldn't reset the context if no rules match.

Fixes #5613.
2021-12-03 17:23:35 +01:00
rc-swag
602ebf6ec4
Merge pull request #6003 from keymanapp/chore/common/update-context-method-doxy
chore(common): add more description to Buf method
2021-12-03 15:19:31 +10:00
rc-swag
faff079e2e
chore(common):fix typos in commments 2021-12-03 15:18:59 +10:00
sgschantz
6a1803201f increase size of characters on key by 50% and clip long labels without ellipsis 2021-12-03 11:14:37 +07:00
Marc Durdin
10ef52624d chore: remove commented code 2021-12-03 14:15:48 +11:00
Marc Durdin
5e65120b3f fix(web): call postKeystroke on banner touch
Relates to #3621.

Ensures that the `begin postKeystroke` entry point is called when the
user accepts a suggestion.
2021-12-03 14:13:43 +11:00
Ross
884c249286 chore(common): add more description to Buf method
Also updated the doxy to remove the brief tag.
Made mirror change to appint.h
2021-12-03 10:01:53 +10:00
Marc Durdin
1d42f2cd35
Merge pull request #5984 from keymanapp/feat/developer/3621-developer-ide-support
feat(developer): support for start-of-sentence in IDE 🍆
2021-12-03 08:47:57 +11:00
Marc Durdin
bf42bc4141
Merge pull request #5972 from keymanapp/fix/developer/kmcomp-build-js-message
fix(developer): building kmw keyboard had wrong message callback signature
2021-12-03 08:47:46 +11:00
Keyman Server
c2689025cb
Merge pull request #6001 from keymanapp/auto/version-master-15.0.160
auto: increment master version to 15.0.160
2021-12-03 05:02:35 +11:00
Keyman Build Agent
0c6780a386 auto: increment master version to 15.0.160 2021-12-02 13:01:57 -05:00
Marc Durdin
9995c9f54c fix(web): revise tablet detect strategy
This is based on research from various websites, including Google
documentation and https://screensiz.es/, as well as various older pages.
2021-12-02 15:37:56 +11:00
Darcy Wong
aa75e6b583
Merge pull request #5987 from keymanapp/fix/android/smp-longpress-api-21
fix(android/engine): Fix font paths
2021-12-02 10:14:46 +07:00
Darcy Wong
549506cf19
Merge pull request #5991 from keymanapp/chore/android/document-keyboard-picker
chore(android): Document switching to other system keyboard
2021-12-02 07:11:19 +07:00
Marc Durdin
2d0d9d728f
Merge pull request #5995 from keymanapp/fix/developer/debugger-crash-with-empty-group
fix(developer): debugger crash with empty group
2021-12-02 09:15:42 +11:00
Marc Durdin
9e5c30bca6 chore(web): fixup header comments per review 2021-12-02 07:26:41 +11:00
Marc Durdin
4b3405fef9 fix(developer): debugger crash with empty group
As the array length properties are unsigned integers, taking -1 from
them resulted in an integer overflow when the array was empty. A gotcha
with Delphi-style for loops!
2021-12-02 05:12:52 +11:00
Marc Durdin
2159df10ee chore: tweak keyboard rules for full caps
Removed the 'heuristic' test as it is probably not appropriate for
testing. Removed the mobile-specific platform from the touch layout as
it did not include a caps layer (and should have been identical to the
tablet one anyway).
2021-12-02 05:11:08 +11:00
Keyman Server
6e82403983
Merge pull request #5994 from keymanapp/auto/version-master-15.0.159
auto: increment master version to 15.0.159
2021-12-02 05:02:13 +11:00
Keyman Build Agent
a2cb10cf71 auto: increment master version to 15.0.159 2021-12-01 13:01:30 -05:00
sgschantz
4e5213aa64 added builders for package and keyboard value objects 2021-12-01 13:21:38 +07:00
Darcy Wong
349074d58f chore(android): Document switching to other system keyboard 2021-12-01 10:13:10 +07:00
Darcy Wong
46d5964587
Merge pull request #5979 from keymanapp/fix/android/lint-error-kmsample
chore(android): Specify build tools version on other projects
2021-12-01 09:51:10 +07:00
Darcy Wong
f9b9a0bd2b
Merge pull request #5973 from keymanapp/feat/android/keyboard-picker-plus-ime
feat(android/engine): Add other IME's to the Keyboard Picker menu
2021-12-01 08:28:41 +07:00
Marc Durdin
5fbb1c1dfb chore(web): minor cleanup of pending longpress 2021-12-01 09:27:25 +11: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
88ea17e0ba feat(developer): support for Caps Lock layer 🍆
Relates to #3620.

Allows keyboard developers to add a Caps Lock layer (called 'caps'),
which will be accessible through double-tap of Shift key, in an upcoming
PR.

Also adds test keyboards to exercise the functionality when it is
available.
2021-12-01 08:53:23 +11:00
Darcy Wong
7aa1576347 fix(android/engine): Fix font paths 2021-11-30 15:14:53 +07:00
sgschantz
d2ed35ac20 displaying fonts, getting package name from json.kmp first, then kmp.inf 2021-11-30 14:54:51 +07:00
Marc Durdin
67f7839e72 feat(developer): support for start-of-sentence in IDE
Relates to #3621.

Adds `&layoutChanged`, `begin newcontext`, `begin postkeystroke` support
to IDE editor and keyword help.
2021-11-30 14:56:51 +11:00
Marc Durdin
1683998999
Update common/core/web/input-processor/src/text/inputProcessor.ts
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2021-11-30 12:54:31 +11:00
Keyman Server
79b719ff75
Merge pull request #5982 from keymanapp/auto/version-master-15.0.158
auto: increment master version to 15.0.158
2021-11-30 05:03:50 +11:00
Keyman Build Agent
13f3bc91d4 auto: increment master version to 15.0.158 2021-11-29 13:03:07 -05:00
Eberhard Beilharz
30897811c0
Merge pull request #5966 from keymanapp/fix/linux/tests
fix(linux): Fix ibus-keyman integration tests 🎫
2021-11-29 09:55:30 +01:00
Marc Durdin
25dfdf3a88
Merge pull request #5978 from keymanapp/chore/developer/tweak-lang-metadata-message
chore(developer): tweak language metadata message
2021-11-29 16:10:56 +11:00
Marc Durdin
35dd3b1671
Merge pull request #5481 from keymanapp/chore/windows-setup-notes
chore(windows): Consolidate documentation for Windows devboxes
2021-11-29 16:10:34 +11:00
Marc Durdin
e296eb8a67 chore(windows): Merge branch 'master' into chore/windows-setup-notes 2021-11-29 16:09:36 +11:00
Marc Durdin
eb3261cc72
Update docs/build/windows.md
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2021-11-29 16:08:41 +11:00
rc-swag
13fc2bfd45
Merge pull request #5850 from keymanapp/feat/windows/preserved-key-support
feat(common/core/desktop): Allow preserved key support
2021-11-29 14:48:26 +10:00
Darcy Wong
3dcb2ea268 chore(android): Specify build tools version on other projects
While Android Studio Gradle plugin should automatically use a default version of build tools, we can specify it:
https://developer.android.com/studio/releases/build-tools

Attempting to resolve lint exceptions on the build agent.
2021-11-29 10:57:54 +07:00
Ross
b54be8aa9b feat(windows): add kmx_conversion.cpp to test Makefile.am 2021-11-29 10:56:53 +10:00
Ross
cfed6f1112 feat(windows): add comment for clarity 2021-11-29 10:52:17 +10:00
Ross
059af9efd1 feat(windows): add MapUSCharToVK to kmx processor 2021-11-29 10:52:16 +10:00
Ross
c875cdbc11 feat(windows): add MapUSCharToVK to kmx processor 2021-11-29 10:52:14 +10:00
Ross
58384ede0a feat(windows): clean up old kbd kmx 2021-11-29 10:52:13 +10:00
rc-swag
3df288779e feat(core): update copyright
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2021-11-29 10:52:12 +10:00
Ross
c95e565fbf feat(windows): Replace magic numbers with constants 2021-11-29 10:52:11 +10:00
Ross
6f6600a501 feat(windows): Rename kbd file fix meson build for key list test 2021-11-29 10:52:09 +10:00
Ross
4d1eee983c feat(windows): remove unused vk_count var 2021-11-29 10:52:08 +10:00
Ross
31d7200a63 feat(windows): replace insert_or_assign with[] for hashmap
Also update issue comment for future removal of winows processor code
2021-11-29 10:52:07 +10:00