Commit graph

24978 commits

Author SHA1 Message Date
Marc Durdin
4c7b7992da
Merge pull request #10137 from keymanapp/fix/developer/10003-opening-multiple-kpj
fix(developer): prevent opening .kpj in multiple processes 🦕
2023-12-06 12:00:32 +11: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
Keyman Server
86af2964b9
Merge pull request #10142 from keymanapp/auto/version-master-17.0.225
auto: increment master version to 17.0.225
2023-12-06 01:06:25 +07:00
Keyman Build Agent
8e48a30178 auto: increment master version to 17.0.225 2023-12-05 13:05:54 -05:00
Eberhard Beilharz
b58dcbcc3d
fix(web): Fix null error with legacy keyboards
Fixes #10099.
2023-12-05 18:11:18 +01:00
Eberhard Beilharz
5a8f68ab90
Merge pull request #10121 from keymanapp/chore/linux/cherry-pick/changelog
chore(linux): Update debian changelog 🍒
2023-12-05 09:16:22 +01:00
Marc Durdin
4641684501 fix(developer): prevent opening .kpj in multiple processes
Fixes #10003.

Multiple small fixes required here:
* Add .kpj as an editable file type
* Ensure that when OpenFile returns nil (which it always will for a
  .kpj), that we don't crash
* Ensure that projects open in a new process rather than replacing the
  current project session

Adds a TODO for New Project -- this should be opened in a new process if
we already have a project open in the current process. Will push this
into a separate PR.
2023-12-05 15:08:05 +07:00
Joshua A. Horton
c2d69f8a7a change(web): prevents auto-cancellation of simple-taps for flicked layouts when touchpoint moves 2023-12-05 13:05:42 +07:00
Joshua A. Horton
4551c4f8f9 chore(web): Merge branch 'change/web/floating-tablet-preview' into feat/web/multitap-preview-hints 2023-12-05 09:15:29 +07:00
Joshua A. Horton
b960cb03ac fix(web): tablet preview positioning 2023-12-05 09:15:10 +07:00
Joshua A. Horton
b938dc5328 fix(web): whoops, forgot to --debug build in last commit 2023-12-05 08:50:04 +07: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
Joshua A. Horton
22a6fbedf5 fix(web): test keyboard 0-key not consistent with other numerals 2023-12-05 08:36:54 +07:00
Keyman Server
baad2e89c9
Merge pull request #10128 from keymanapp/auto/version-master-17.0.224
auto: increment master version to 17.0.224
2023-12-05 01:02:43 +07:00
Keyman Build Agent
19162d1462 auto: increment master version to 17.0.224 2023-12-04 13:02:11 -05:00
Eberhard Beilharz
d4fcc8f7ff
Merge pull request #10124 from keymanapp/chore/web/coverage
chore(web): Add option to create test coverage report file
2023-12-04 11:25:17 +01:00
Eberhard Beilharz
cd72449da9
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-12-04 09:51:55 +01:00
Marc Durdin
802f22578a chore(core): address review comments 2023-12-04 13:37:59 +07:00
Joshua A. Horton
8465f1f3e2 chore(web): adjusts pre-gesture banner code to post-gesture 2023-12-04 12:46:52 +07:00
Joshua A. Horton
e5e04f1de2 feat(web): restores scroll-state tracker 2023-12-04 11:01:25 +07:00
Joshua A. Horton
d2c55fc797 chore(web): Merge branch 'feature-gestures' into feat/web/fancy-suggestion-banner-megamerge 2023-12-04 10:20:12 +07:00
Marc Durdin
ff5a366c45 feat(developer): Open files in per-project instances
Refactor the file-opening code so it can be used by Keyman Developer UI
as well as command-line, and then add support for opening files in
per-project instances from File|Open and friends.

Also moves the initialization code out of tike.dpr into
Keyman.Developer.System.Main.pas, which makes it easier to maintain and
read.
2023-12-04 08:47:36 +07:00
Joshua Horton
d8a6467b2d
Merge pull request #10120 from keymanapp/chore/web/conflict-fix
chore(web): merge conflict fix for feature-gestures 🐵
2023-12-04 08:10:58 +07:00
Keyman Server
ed5d572e73
Merge pull request #10125 from keymanapp/auto/version-master-17.0.223
auto: increment master version to 17.0.223
2023-12-02 11:42:23 +07:00
Keyman Build Agent
e9be1d226a auto: increment master version to 17.0.223 2023-12-01 23:41:52 -05:00
Marc Durdin
9cc8b40360
Merge pull request #10118 from keymanapp/fix/common/10111-developer-utils-npm-module
fix(common): publish @keymanapp/developer-utils as npm module
2023-12-02 15:28:52 +11:00
Marc Durdin
4f9f71da3c chore(developer): add build.sh dep 2023-12-02 06:25:01 +07:00
Marc Durdin
c520918646 chore(developer): support publish and pack in build.sh 2023-12-02 05:49:16 +07:00
Eberhard Beilharz
91fb28fa0a
chore(web): Add option to create test coverage report
This adds a `coverage` parameter to `web/build.sh` that will create
a coverage report in HTML format in `web/build/coverage/index.html`.
2023-12-01 20:04:35 +01:00
Keyman Server
5e512fc38e
Merge pull request #10123 from keymanapp/auto/version-master-17.0.222
auto: increment master version to 17.0.222
2023-12-02 01:03:53 +07:00
Keyman Build Agent
58e75a273e auto: increment master version to 17.0.222 2023-12-01 13:03:23 -05:00
Eberhard Beilharz
00ab53e95e
Merge pull request #10086 from keymanapp/fix/web/detachFromControl
fix(web): Don't throw errors after detach
2023-12-01 15:23:39 +01:00
Eberhard Beilharz
742ae5379e
chore(linux): Update debian changelog
(cherry picked from commit e4385e284e)
2023-12-01 15:09:55 +01: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
662ed0e50c fix(common): publish @keymanapp/developer-utils as npm module
Fixes #10111.
2023-12-01 14:05:51 +07:00
Eberhard Beilharz
31e1b36384
Merge pull request #10109 from keymanapp/chore/linux/cherry-pick/loong64
chore(linux): Add support for loong64 architecture 🍒
2023-12-01 08:05:22 +01:00
Joshua A. Horton
121e24a81e fix(web): at min, mitigates non-collapsing option issue 2023-12-01 13:24:04 +07:00
Marc Durdin
0bc426cf1a
Merge pull request #10092 from keymanapp/fix/developer/project-internal-paths
chore(developer): require project file to exist 🦕
2023-12-01 16:31:40 +11:00
Marc Durdin
b6daac0bdb feat(core): action struct to action items conversion
Adds state->set_actions(). This sets the Core's action list to match the
contents of the action struct. Note that markers are not supported and
backspace expected_values will be empty, as this information is not
available. As the intended consumer of the action struct does not need
to know this information, this should be adequate.
2023-12-01 12:27:49 +07:00
Marc Durdin
915510b845 chore(developer): remove obsolete files 2023-12-01 12:00:56 +07:00
Joshua A. Horton
32e7d9a5d7 chore(web): changes per PR review 2023-12-01 11:49:00 +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 A. Horton
d720bd9ade fix(web): font style retrieval for suggestion-width calcs 2023-12-01 10:59:45 +07:00
Joshua A. Horton
5fd0cebdcb fix(web): z-index issues - suggestions were above keytips and subkeys 2023-12-01 09:42:52 +07:00
Joshua A. Horton
5feb623d3e chore(web): Merge branch 'master' into feat/web/fancy-suggestion-banner 2023-12-01 09:14:07 +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
Joshua Horton
19d3d7c20c
Merge pull request #10022 from keymanapp/change/android/flishy-flashy-mitigation-2
change(android): smoother keyboard initialization 
2023-12-01 09:12:50 +07:00
Joshua Horton
f7f5952742
Merge pull request #10017 from keymanapp/change/android/flishy-flashy-mitigation
change(android): flishy flashy mitigation, round 1 
2023-12-01 09:12:38 +07:00
Joshua A. Horton
db99a87c77 chore(web): Merge branch 'master' into feat/web/fancy-suggestion-banner 2023-12-01 08:31:23 +07:00