Commit graph

13965 commits

Author SHA1 Message Date
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
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
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
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
Marc Durdin
ac30b280ae chore(developer): move kcframe into its own folder 2021-11-25 14:35:51 +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
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
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
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