Commit graph

27982 commits

Author SHA1 Message Date
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
Ross
2353590138 feat(windows): Make keyboad key list unique 2021-11-29 10:52:06 +10:00
rc-swag
4e1ccfdd4f feat(windows): apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-11-29 10:52:04 +10:00
Ross
edfa9bcddd feat(windows): Fix auto using int instead of uint 2021-11-29 10:52:03 +10:00
Ross
ac16abdb18 feat(windows): rename key_rules -> key_list 2021-11-29 10:52:02 +10:00
Ross
9f44cf49fc feat(windows): fix pkeys index add comments
The pkeys was using the wrong counter as a index
in the map check therefore matching the incorrect key
2021-11-29 10:52:01 +10:00
Ross
72d8188a38 feat(windows): complete common core get rules api 2021-11-29 10:51:59 +10:00
Ross
9c1b6702b3 feat(windows): inital commit get rule keys api 2021-11-29 10:51:58 +10:00
Marc Durdin
83eb8395d6 chore(web): cleanup sample test 3621 keyboard 2021-11-29 10:54:46 +11:00
Marc Durdin
f9b4be6883 chore(web): refactor constructNullKeyEvent 2021-11-29 10:54:28 +11:00
Marc Durdin
3601ae95e4 chore(web): fix broken test 2021-11-29 10:54:05 +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
b930d8199a chore(developer): tweak language metadata message
Relates to https://community.software.sil.org/t/why-does-the-details-tab-in-keyman-developer-still-refer-to-keyman-10/5612/3
2021-11-29 08:27:21 +11:00