Commit graph

5430 commits

Author SHA1 Message Date
Joshua A. Horton
c43a2a4cfe fix(common/models): lm-worker reset context didn't clear context cache 2023-12-08 09:13:48 +07:00
Joshua A. Horton
2f2195e645 fix(common/models): worker reset context did not auto-tag new context 2023-12-08 09:11:33 +07:00
Joshua Horton
a4373f16aa
chore(web): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-12-08 08:22:31 +07:00
Eberhard Beilharz
289e07572e
Merge pull request #10141 from keymanapp/fix/web/10099_null-property
fix(web): Fix null error with legacy keyboards
2023-12-07 08:13:38 +01:00
Joshua A. Horton
1a1a9712f3 fix(web): heterogenous longpress roaming 2023-12-07 11:17:47 +07:00
Marc Durdin
6bebefda10 feat(developer): move kmc-kmn to KeymanCompiler interface
Part of #9473.

KmnCompiler now implements KeymanCompiler, including the returned
artifacts. Also establishes the common types for the compiler interfaces
and consolidates and renames various API surfaces for kmc-kmn.
2023-12-07 11:05:31 +07:00
Joshua Horton
ef901a53d0
Merge pull request #10014 from keymanapp/fix/web/unwanted-banner-retoggle
fix(web): accidental suggestion-banner retoggle when disabling predictions
2023-12-07 09:52:21 +07:00
Eberhard Beilharz
38c783935e
fix(web): Fix null error with legacy keyboards
This uses a different approach in response to code review.

Fixes #10099.
2023-12-06 16:45:18 +01:00
Marc Durdin
d693bbd457 chore: address review comments 2023-12-06 13:00:04 +07:00
Marc Durdin
a330666515 fix(common): kpj loader needs to handle empty Files element
Fixes #10143.
2023-12-06 12:37:25 +07:00
Marc Durdin
6c918e6aa8 fix(developer): Option to disable prompting for project upgrade
Fixes #10146.

Some developers may wish to stick with kpj-1.0 for now, and the prompt
to upgrade would annoying because it cannot be hidden. This resolves
that.

Note that I haven't at this point renamed UrlRenderer.pas, although it
may be worth considering in the future.
2023-12-06 09:54:12 +07:00
Marc Durdin
56d5f379df
Merge pull request #10114 from keymanapp/feat/developer/multi-process-file-loading
feat(developer): Multi-process model for projects 🦕
2023-12-06 10:50:47 +11:00
Eberhard Beilharz
b58dcbcc3d
fix(web): Fix null error with legacy keyboards
Fixes #10099.
2023-12-05 18:11:18 +01:00
Joshua A. Horton
e9dd7a1216 chore(web): marks new default key's ID as private use 2023-12-05 08:47:40 +07:00
Joshua A. Horton
094492775b change(web): adds a 'default' nextlayer key in default shift-multitap rota 2023-12-05 08:44:11 +07:00
Marc Durdin
6e3019ecd6
Merge pull request #10075 from keymanapp/chore/merge-master-into-epic/windows-updates
chore: merge master into epic/windows-updates 💽
2023-12-02 15:29:40 +11:00
Joshua A. Horton
3c4e5d6ebd chore(web): Merge branch 'master' into chore/web/conflict-fix 2023-12-01 14:16:18 +07:00
Marc Durdin
39b7c882a3 feat(developer): Multi-process model for projects 🦕
This is a bit of an omnibus commit, apologies for that. This commit
moves Keyman Developer to a proper multi-process model, where editing
files from multiple projects is handled much more cleanly, with each
project loaded in a separate process.

Files that are edited outside of a project structure are loaded into a
'temporary project' in a single process, which provides a pathway for
existing users who may have legacy files outside the normal Keyman
Developer project model.

There are several components to this:

1. Inter-process communication (Multiprocess, CopyDataHelper units and
   multiprocess test project). These modules establish a method of
   enumerating running Keyman Developer instances (with EnumWindow),
   recording relevant metadata for each instance (by thread id) in the
   registry (registry used because it manages contention without
   additional effort from us), and communicating between processes with
   WM_COPYDATA.
2. Command-line parsing (TikeCommandLine). Determines project ownership
   (ProjectOwningFile) for each filename passed on the command-line, and
   passes these over to existing instances of Keyman Developer that have
   that project loaded, or starts new instances as needed.
3. Temporary project management. Mostly in ProjectUI.

Also, moved GlobalProjectStateWnd management out of ProjectFile.pas and
into Project.pas, alongside other global project variables.

A follow-up will add functionality to determine if a file opened within
the Keyman Developer UI should open in the same instance or in a
separate instance (see TfrmKeymanDeveloper.OpenFileInProject). This will
use the same methodology as TikeCommandLine does now, so may involve
further refactoring.

This commit establishes the idea of 'keyman.kpj' as a future default
filename for Keyman Developer projects, but does not enable it, in
ProjectOwningFile. It is planned to introduce this fixed filename in
version 18.0 (see #10113).
2023-12-01 11:48:09 +07:00
Joshua Horton
8e272d8d55
Merge pull request #10061 from keymanapp/fix/android/banner-event-loop
fix(android): no suggestions available when swapping pred-text target language 
2023-12-01 09:13:01 +07:00
Eberhard Beilharz
de2fb3aeac
Merge pull request #10089 from keymanapp/chore/web/sourcemap
fix(web): Also move source map
2023-11-29 09:41:01 +01:00
Marc Durdin
3ef4dc7f84
Merge pull request #10016 from keymanapp/fix/developer/project-internal-paths
fix(developer): projects 2.0 internal path enumeration 🦕
2023-11-29 16:50:25 +11:00
Eberhard Beilharz
7e47fa29e6
fix(web): Also move source map
Previously we renamed `dom-keyboard-loader.mjs` but forgot to move
the source map along.
2023-11-28 17:47:09 +01:00
Steven R. Loomis
02c8db9fdd
Merge branch 'master' into feat/developer-9446-bad-unicode-epic-ldml 2023-11-25 14:08:41 -06:00
Steven R. Loomis
d18134fcb3 feat(common): ldml improve bad character code 🙀
- use constants for PUA

For: #9446
2023-11-25 14:08:16 -06:00
Steven R. Loomis
bb63ba8a66
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-11-25 13:51:53 -06:00
Joshua A. Horton
736e06fd90 chore(web): drops single-use protected prop 2023-11-24 11:58:57 +07:00
Joshua A. Horton
129e193a13 chore(web): fully removes all remaining subsegmentation bits and baubles 2023-11-24 11:58:02 +07:00
Joshua A. Horton
12aad6ca25 fix(web): simplified mean 2023-11-24 11:55:26 +07:00
Joshua A. Horton
b9a584a141 docs(web): updates comments for the two path-stats variants 2023-11-24 11:46:40 +07:00
Joshua A. Horton
c86d417308 chore(web): splits path-stats object into simpler + full; full tree-shakes out 2023-11-24 11:41:28 +07:00
Joshua Horton
6f38fde42b
Merge pull request #10074 from keymanapp/chore/merge-master-into-feature-gestures
chore: merge master into feature-gestures 🐵
2023-11-24 11:36:56 +07:00
Joshua A. Horton
40f9e6ebd8 chore(web): Merge branch 'feature-gestures' into chore/merge-master-into-feature-gestures
Involved splicing feature-gestures banner changes into the newly-separated banner sources.
2023-11-24 08:29:39 +07:00
Eberhard Beilharz
f56033f537 chore(web): Add TAB output to test keyboard 2023-11-23 18:02:36 +01:00
Eberhard Beilharz
ef8b9888c8 chore(web): Update touch layout 2023-11-23 17:22:24 +01:00
Eberhard Beilharz
fb7c19fee4
chore(core): Add test keyboard for text selection tests
Part of #9073.
2023-11-23 10:51:59 +01:00
Joshua Horton
4970664347
Merge pull request #10039 from keymanapp/fix/web/app-context-deadkey-reset
fix(web): app/webview did not clear deadkeys on context-reset
2023-11-23 11:53:23 +07:00
Joshua A. Horton
7754427274 fix(android): banner event loop on model change 2023-11-23 10:13:26 +07:00
Steven R. Loomis
5bfb3288d2 feat(developer): ldml improve bad character code 🙀
- refactor output section

For: #9446

Co-authored-by: Darcy Wong <darcywong00@users.noreply.github.com>
2023-11-22 16:59:02 -06:00
Steven R. Loomis
aa87bdfea9
Merge branch 'fix/core-9961-optional-startContext-epic-ldml' into feat/developer-9446-bad-unicode-epic-ldml 2023-11-22 13:26:55 -06:00
Marc Durdin
8756e4016c feat(windows): Online Update check stream update data
Starts to refactor the online update check in Windows so that the
results are stored to disk and can be checked at any time. This commit:
* removes keepintouch frame
* adds update frame
* adds serialization of update check data
* presents the serialized update check data in the update frame

Online updates won't currently work.
2023-11-22 14:23:30 +10:00
Joshua A. Horton
0f32515050 fix(web): app/webview did not clear deadkeys on context-reset 2023-11-22 09:09:36 +07:00
Joshua A. Horton
59870ffbe6 fix(web): app/webview did not clear deadkeys on context-reset 2023-11-22 09:08:55 +07:00
Joshua A. Horton
f94f98f1a7 docs(web): minor doc on resetOnResolve 2023-11-21 16:00:17 +07:00
Joshua A. Horton
bce1737b4b fix(web): incomplete layer remapping during modipress-multitap 2023-11-21 15:59:43 +07:00
Joshua A. Horton
a0ea2b8fd5 chore(web): Merge branch 'feature-gestures' into feat/web/delayed-modipress-completion 2023-11-21 14:12:33 +07:00
Joshua Horton
d3d42b7b1e
Merge pull request #10015 from keymanapp/feat/web/basic-gesture-model-validation
feat(web): basic gesture model validation 🐵
2023-11-21 14:11:44 +07:00
Joshua A. Horton
8842463e27 chore(web): Merge branch 'feature-gestures' into feat/web/delayed-modipress-completion 2023-11-21 14:01:31 +07:00
Joshua A. Horton
b3714a02e8 fix(web): subview construction for terminated sources 2023-11-21 12:54:24 +07:00
Joshua A. Horton
83bc0da535 fix(web): proper resolution on model replacement failure 2023-11-21 12:51:54 +07:00
Joshua A. Horton
8be3f095b6 fix(web): headless unit-test patchup, fixes non-awaitNested handling 2023-11-21 10:58:30 +07:00