Commit graph

33096 commits

Author SHA1 Message Date
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
Keyman Build Agent
a5f2892c31 auto: increment master version to 15.0.154 2021-11-20 13:01:25 -05:00
Marc Durdin
90f59a5cda
Merge pull request #5902 from keymanapp/fix/web/5353-uncaught-in-promise-error
fix(web): resolve unhandled exception in promise
2021-11-20 10:57:31 +11:00
Keyman Server
97eed77d17
Merge pull request #5956 from keymanapp/auto/version-master-15.0.153
auto: increment master version to 15.0.153
2021-11-20 05:02:06 +11:00
Keyman Build Agent
ceadbb0fc5 auto: increment master version to 15.0.153 2021-11-19 13:01:24 -05:00
Eberhard Beilharz
b9428c9ae8
chore(linux): Remove unused test methods
This change removes the pre-edit related test methods since we
don't use the pre-edit option.
2021-11-19 15:10:56 +01:00
Marc Durdin
10a41c43cc fix(web): clear longpress timeout if user does a flick up
Fixes #5950.

If a user starts a longpress gesture and then flicks up, that
immediately brings up the longpress menu, and the timeout for display of
the menu should be cancelled -- otherwise the end result is a key that
stays 'stuck' on.
2021-11-19 15:43:27 +11:00
Marc Durdin
95dcbc3e57 fix(web): remove obsolete popupBaseTarget
Fixes #5912.

The variable `popupBaseTarget` is never set. Removing.
2021-11-19 13:53:56 +11:00
Marc Durdin
db7f7e1f4b
Merge branch 'master' into fix/web/5353-uncaught-in-promise-error 2021-11-19 13:11:59 +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
896f4ec07e
Merge pull request #5842 from SabineSIL/mdecxstr
fix(common/core):  Update decxstr to check all characters while decrementing
2021-11-19 10:37:14 +11:00
Marc Durdin
b2566c948a
Merge branch 'master' into mdecxstr 2021-11-19 10:35:01 +11:00
Keyman Server
08d917bea4
Merge pull request #5941 from keymanapp/auto/version-master-15.0.152
auto: increment master version to 15.0.152
2021-11-19 05:02:42 +11:00
Keyman Build Agent
68328487d2 auto: increment master version to 15.0.152 2021-11-18 13:01:57 -05:00
Sabine
5a31959a55 Merge remote-tracking branch 'origin/master' into mdecxstr 2021-11-18 18:47:09 +01:00
Sabine
e578e43208 fix(common/core)-decxstr: included tests for newly defined behavior 2021-11-18 18:39:28 +01:00
Marc Durdin
400678aa22
Merge pull request #5937 from keymanapp/fix/developer/5926-web-move-osk-beneath-text-area
fix(developer): move web osk beneath text area
2021-11-18 15:57:24 +11:00
Marc Durdin
8d70cfecc9
Merge pull request #5933 from keymanapp/fix/mac/use-xcframework-to-support-m1
fix(mac): use xcframework to support m1
2021-11-18 15:56:53 +11:00
Marc Durdin
0314593a96 fix(web): inline osk keytip position
Fixes #5935.

Takes parent element's position into account when calculating keytip
location.
2021-11-18 15:47:56 +11:00
Darcy Wong
1e50270b5b
Merge pull request #5913 from keymanapp/fix/android/2858-key-text
fix(android/engine): Support for U_xxxx_yyyy subkeys
2021-11-18 11:47:53 +07:00
Darcy Wong
ec079a9373 fix(android/engine): Add additional check 2021-11-18 11:00:57 +07:00
Marc Durdin
9259ba5827 fix(developer): move web osk beneath text area
Fixes #5926.

This gives space for the popups to appear, even if they are large.
2021-11-18 15:00:44 +11:00
Marc Durdin
450f9e74c3 chore: move ocmock dependency to tests 2021-11-18 14:43:28 +11:00
Marc Durdin
649dd331c0
Merge pull request #5925 from keymanapp/fix/developer/5924-tike-icon
fix(developer): use correct tike icon
2021-11-18 13:17:20 +11:00
Marc Durdin
f070bfbea6 fix(mac): use xcframework to support m1 2021-11-18 12:03:52 +11:00
Keyman Server
35b42c3dd7
Merge pull request #5930 from keymanapp/auto/version-master-15.0.151
auto: increment master version to 15.0.151
2021-11-18 07:27:31 +11:00
Keyman Build Agent
b5475dd98a auto: increment master version to 15.0.151 2021-11-17 15:26:49 -05:00
Marc Durdin
8cdf982863
Merge pull request #5915 from keymanapp/fix/web/5831-remove-canvas-for-ios-compat
fix(web): remove canvas use for iOS compatibility
2021-11-18 07:23:49 +11:00
Keyman Server
f4130a6ebd
Merge pull request #5927 from keymanapp/auto/version-master-15.0.150
auto: increment master version to 15.0.150
2021-11-18 05:02:25 +11:00
Keyman Build Agent
420789a02d auto: increment master version to 15.0.150 2021-11-17 13:01:40 -05:00
Marc Durdin
68135b9a5e fix(developer): use correct tike icon
Fixes #5924.

I'm not sure when this happened. But it should be right now.
2021-11-17 16:48:42 +11:00
Marc Durdin
5789d39deb fix(developer): render osk nicely on touch devices
Fixes #5905.

Touch devices now use a touch keyboard only in the web debugger.
2021-11-17 15:46:04 +11:00
Darcy Wong
c98ac9880c
Merge pull request #5841 from keymanapp/chore/common/crowdin-ff-ng
chore(common): Check in crowdin strings for Fulfulde Nigeria
2021-11-17 09:24:35 +07:00
Marc Durdin
65d5fdb56a fix: rework decxstr for mid-sequence movement 2021-11-17 12:26:24 +11:00
Darcy Wong
5f3cf3a7d6
Merge pull request #5770 from keymanapp/chore/developer/update-jszip
chore(developer): Update jszip version
2021-11-17 07:28:13 +07:00
Marc Durdin
c2c7e00e94 fix(web): reset scroll anchor on touchend
Fixes #5313.
2021-11-17 10:37:01 +11:00