Commit graph

27982 commits

Author SHA1 Message Date
Marc Durdin
b5775d59a7
Merge pull request #5977 from keymanapp/fix/web/5947-merge
fix(web): restore `dragEnd` function 🔥
2021-11-29 08:25:51 +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
d4186b5093
Merge pull request #5971 from keymanapp/chore/developer/move-kcframe
chore(developer): move kcframe into its own folder
2021-11-29 06:38:39 +11:00
Marc Durdin
eb2892ec01
Merge pull request #5970 from keymanapp/fix/developer/kmdecomp-string-overflow-1
fix(developer): kmdecomp string overflow
2021-11-29 06:37:24 +11:00
Marc Durdin
94cfbae33d
Merge pull request #5923 from keymanapp/fix/developer/5905-debugger-render-on-touch-devices
fix(developer): render OSK nicely on touch devices
2021-11-29 06:37:15 +11:00
Marc Durdin
f0e73a7b44
Merge pull request #5947 from keymanapp/fix/web/5944-save-focus-for-eurolatin-osk
fix(web): support saving focus for custom OSK interactions
2021-11-29 06:36:42 +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
8bc61094c8
Merge pull request #5958 from keymanapp/fix/web/improve-keyboard-switch-performance
fix(web): improve keyboard switch performance
2021-11-29 06:34:55 +11:00
Marc Durdin
93d2e82096
Merge pull request #5949 from keymanapp/fix/web/5912-popupbasetarget
fix(web): remove obsolete popupBaseTarget
2021-11-29 06:34:49 +11:00
Keyman Server
a05048590f
Merge pull request #5976 from keymanapp/auto/version-master-15.0.157
auto: increment master version to 15.0.157
2021-11-27 05:01:47 +11:00
Keyman Build Agent
158faa8589 auto: increment master version to 15.0.157 2021-11-26 13:01:09 -05:00
sgschantz
5642b02d35 displaying all package info in info window, except fonts 2021-11-26 16:25:54 +07:00
rc-swag
82ed02e3a7
Merge pull request #5959 from keymanapp/fix/windows/load-keyboard-options-frees-unitialised-mem
fix(windows): fix loadkeyboardoptions core memory error
2021-11-26 13:34:14 +10:00
sgschantz
96c78752b5 load Keyman Package information from kmp.json file and store in new PackageInfo object rather than in existing Dictionary hierarchy 2021-11-25 17:09:01 +07:00
Darcy Wong
7b80c25dfe chore(android/engine): Add note about removing "Close Keyman" button 2021-11-25 13:13:01 +07:00
Darcy Wong
951ee7f6f7 feat(android/engine): Add permission to query other IME's
Permission needed for Android 11
See https://developer.android.com/training/package-visibility/declaring#intent-filter-signature
2021-11-25 13:13:01 +07:00
Darcy Wong
cff749559e feat(android/engine): Add other input methods to Keyboard Picker 2021-11-25 13:13:01 +07:00
Marc Durdin
9fc9d9391e fix(developer): building kmw keyboard had wrong message callback signature
Picked up during #5963 development.

If you ran `kmcomp <file.kmn> <out.js>`, compiler messages were passed
to a function with an incorrect signature, resulting in an exception.
This was a mode that was not widely used, which is why we haven't
picked it up earlier.
2021-11-25 14:37:47 +11:00
Marc Durdin
ac30b280ae chore(developer): move kcframe into its own folder 2021-11-25 14:35:51 +11:00
Marc Durdin
2de8c145c0 fix(developer): kmdecomp string overflow
Picked up in development of #5963.
2021-11-25 14:32:24 +11:00
Marc Durdin
e24b7561c6 feat(developer): add readonly group support
Relates to #3621.

Adds `readonly` group support and verifies that keyboards meet
constraints around usage of these groups.

(Note: fixes test_valid.kps and test.bat which seemed to have some
invalid tests?)
2021-11-25 14:27:05 +11:00
Keyman Server
aec95ca2ac
Merge pull request #5967 from keymanapp/auto/version-master-15.0.156
auto: increment master version to 15.0.156
2021-11-25 05:02:29 +11:00
Keyman Build Agent
9cdda14f9e auto: increment master version to 15.0.156 2021-11-24 13:01:44 -05:00
Eberhard Beilharz
37e20c5cbb
fix(linux): Fix ibus-keyman integration tests
Previously we overwrote our test data, so we basically ran the same
test repeatedly under different names.

Properly running them showed some failures which this change also
fixes or skips.
2021-11-24 15:59:44 +01:00
Marc Durdin
9eb2e4d4f9
Merge pull request #5952 from keymanapp/fix/web/5950-clear-timeout-on-longpress-flick
fix(web): clear longpress timeout if user does a flick up
2021-11-24 18:04:33 +11:00
Marc Durdin
d6da1ac447
Merge pull request #5946 from keymanapp/fix/web/5909-shorten-setfocustimer
fix(web): shorten setFocusTimer()
2021-11-24 07:11:49 +11:00
Marc Durdin
f300e81381
Merge branch 'master' into fix/web/5909-shorten-setfocustimer 2021-11-24 07:11:34 +11:00
Marc Durdin
066c03975f
Merge pull request #5919 from keymanapp/fix/web/5313-scrolling-anchor-reset-on-touchend
fix(web): reset scroll anchor on touchend
2021-11-24 07:10:47 +11:00
Marc Durdin
ce2aa9a166 feat(web): support for &layerChanged
Relates to #3621.

Add support for `&layerChanged` system store. This store is set to `1`
before a `begin postKeystroke`, if the keystroke it follows resulted in
a layer change, either programatically through a keyboard rule, or
through a `nextlayer` property of the touched key.
2021-11-24 06:45:20 +11:00
Marc Durdin
f5fc41712d feat(web): add support for begin postKeystroke
Relates to #3621.

This adds support for `begin postKeystroke` to KeymanWeb. This is now
close to final, apart from support for `&layerChanged`.
2021-11-23 16:56:16 +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
80db98a5f9 feat(web): compiler support for newContext, postKeystroke
Relates to #3621.

This adds basic compiler support for the `begin newContext` and
`begin postKeystroke` statements, along with the corresponding `gn` and
`gpk` entry points in the compiled JavaScript keyboard.

TODO: `readonly` semantics, usage constraints, `&layerChanged`.
2021-11-23 10:13:14 +11:00
Marc Durdin
e803bed813 feat(web): start-of-sentence test keyboard
Relates to #3621.

Initial draft of keyboard to test start-of-sentence detection.
2021-11-23 10:11:10 +11:00
Ross
eb080e1b15 fix(windows): address review comments 2021-11-23 07:57:24 +10:00
rc-swag
46042987df
fix(windows): commit review suggestions
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-11-23 07:20:22 +10:00
Keyman Server
484fad1ce4
Merge pull request #5961 from keymanapp/auto/version-master-15.0.155
auto: increment master version to 15.0.155
2021-11-23 05:02:48 +11:00
Keyman Build Agent
e0034044b0 auto: increment master version to 15.0.155 2021-11-22 13:02:01 -05:00
Eberhard Beilharz
3cf6657ace
Merge pull request #5889 from keymanapp/chore/linux/5613-unittests
chore(linux): Run ibus-keyman tests as part of the build 🎫
2021-11-22 15:41:03 +01:00
Eberhard Beilharz
f1dcb71127
chore(linux): Run ibus-keyman tests as part of build
Part of #5613.
2021-11-22 15:40:37 +01:00
Eberhard Beilharz
07fb8084ee
chore(linux): Fix unit tests
Array has to be NULL terminated.
2021-11-22 15:40:17 +01:00
Eberhard Beilharz
65d1a3f9a0
chore(linux): Improve run-tests.sh script
Part of #5613.
2021-11-22 15:40:17 +01:00
Eberhard Beilharz
873ce0dc3a
Merge pull request #5954 from keymanapp/chore/linux/cleanup
chore(linux): Remove unused test methods 🎫
2021-11-22 15:24:03 +01:00
Ross
ec98070775 fix(windows): remove set default registry value 2021-11-22 21:37:41 +10:00
Shawn Schantz
7ee95bced2
Merge pull request #5869 from keymanapp/feat/mac/i18n
feat(mac): i18n, support localization of Keyman for Mac
2021-11-22 12:44:33 +07:00
Ross
de966aa5c5 fix(windows): fix loadkeyboardoptions core memory error
LoadKeyboardOptionsCore no longer frees memory that
has not been allocated.
2021-11-22 15:33:47 +10:00
Marc Durdin
075a92b903
Merge pull request #5938 from keymanapp/fix/web/5935-inline-osk-keytip-position
fix(web): inline osk keytip position
2021-11-22 15:04:24 +11:00
Marc Durdin
08a83a0366
Merge pull request #5910 from keymanapp/fix/web/5907-simplify-hide-transition
fix(web): simplify hide transition
2021-11-22 15:04:16 +11:00
Marc Durdin
909d833474 fix(web): improve keyboard switch performance
Summary of these changes:

Two targeted improvements; more optimization is possible but IMO this is
a significant enough improvement to go through test:

1. In oskView.ts, avoid calling `VisualKeyboard.refreshLayout` twice
   from `OSKView.refreshLayout`. This roughly halves the time spent in
   `VisualKeyboard.refreshLayout` for a keyboard switch.
2. In modelManager.ts, we avoid a very expensive `unloadModel` /
   `loadModel` sequence from `registerModel` by checking to see if the
   model spec we are passed is already registered. This avoids an
   expensive callback to Keyman for Android which causes the banner to
   'bounce'.

Longer notes:

So `VisualKeyboard.refreshLayout` is called 20+ times during a keyboard
switch. It is a very expensive call. It is the bulk of the time spent
when you press the globe key in Keyman for Android. This seems ripe for
optimization; see the following functions in keyboard.html:

* `setKeymanLanguage` -> `setActiveKeyboard` -> 6 calls
* `enableSuggestions` -> `registerModel` -> 8 calls
* `stateChange` -> 6+ calls

`OSKView.refreshLayout` always seems to call
`VisualKeyboard.refreshLayout` twice: first with `setSize`, and then
again itself.

Keyman for Android and KeymanWeb seem to fight over who is responsible
for selecting models (KMW first calls `loadModel`, then Keyman for
Android calls `unloadModel`, `loadModel`, through `enableSuggestions`).

The fix for rotation (`correctOSKTextSize()`), as called from
`stateChange()`, is expensive as well, because it rebuilds the entire
keyboard from scratch.

Along with that, we have the size of the webview changing as the model
is unloaded and reloaded and lots of back-and-forth between the
KeymanWeb and KMEA which seems unnecessary.

Shouldn't KeymanWeb be responsible for loading and unloading models,
once they are all registered? We should only need to register the models
once at page load time (when config changes, do we just reload the
page?).
2021-11-22 10:47:05 +11:00
Keyman Server
5143b28321
Merge pull request #5957 from keymanapp/auto/version-master-15.0.154
auto: increment master version to 15.0.154
2021-11-21 05:02:08 +11:00