Commit graph

2762 commits

Author SHA1 Message Date
Keyman Build Agent
1dbcbd2bd3 auto: increment master version to 15.0.177 2022-01-12 13:01:52 -05:00
Keyman Build Agent
c19dec389f auto: increment master version to 15.0.176 2022-01-11 13:01:39 -05:00
Keyman Build Agent
2397a65407 auto: increment master version to 15.0.175 2022-01-10 13:01:57 -05:00
Keyman Build Agent
30282b059d auto: increment master version to 15.0.174 2022-01-05 13:02:49 -05:00
Keyman Build Agent
42b5552c75 auto: increment master version to 15.0.173 2021-12-23 13:01:25 -05:00
Keyman Build Agent
e10b43e0ef auto: increment master version to 15.0.172 2021-12-17 13:02:29 -05:00
Keyman Build Agent
86d50af4a6 auto: increment master version to 15.0.171 2021-12-16 13:01:48 -05:00
Keyman Build Agent
ee2fe48567 auto: increment master version to 15.0.170 2021-12-15 13:01:30 -05:00
Keyman Build Agent
afac293045 auto: increment master version to 15.0.169 2021-12-14 13:01:07 -05:00
Keyman Build Agent
23db5a0f8d auto: increment master version to 15.0.168 2021-12-13 13:01:06 -05:00
Keyman Build Agent
b8dd9d8cb2 auto: increment master version to 15.0.167 2021-12-11 13:01:59 -05:00
Keyman Build Agent
399eb7472f auto: increment master version to 15.0.166 2021-12-08 13:01:25 -05:00
Marc Durdin
5ab9574112
Merge pull request #5906 from keymanapp/fix/web/5779-font-scaling-in-osk
fix(web): font size was not consistently set
2021-12-08 19:42:11 +11:00
Keyman Build Agent
e22cf8c453 auto: increment master version to 15.0.165 2021-12-07 13:01:28 -05:00
Keyman Build Agent
879c86f8f4 auto: increment master version to 15.0.164 2021-12-06 13:01:22 -05:00
Keyman Build Agent
cf2857f5c1 auto: increment master version to 15.0.163 2021-12-05 13:01:23 -05:00
Keyman Build Agent
aeab6eabef auto: increment master version to 15.0.162 2021-12-04 13:01:30 -05:00
Keyman Build Agent
3ebb31c66d auto: increment master version to 15.0.161 2021-12-03 13:35:27 -05: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
Keyman Build Agent
a2cb10cf71 auto: increment master version to 15.0.159 2021-12-01 13:01:30 -05:00
Keyman Build Agent
13f3bc91d4 auto: increment master version to 15.0.158 2021-11-29 13:03:07 -05: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
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
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 Build Agent
158faa8589 auto: increment master version to 15.0.157 2021-11-26 13:01:09 -05: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
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
Keyman Build Agent
e0034044b0 auto: increment master version to 15.0.155 2021-11-22 13:02:01 -05: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 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 Build Agent
ceadbb0fc5 auto: increment master version to 15.0.153 2021-11-19 13:01:24 -05: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
Keyman Build Agent
68328487d2 auto: increment master version to 15.0.152 2021-11-18 13:01:57 -05: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
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 Build Agent
420789a02d auto: increment master version to 15.0.150 2021-11-17 13:01:40 -05:00