Commit graph

32772 commits

Author SHA1 Message Date
Marc Durdin
cb8150c896
Merge pull request #15275 from keymanapp/docs/developer/api-refresh
docs(developer): add/update API docs
2025-12-03 15:02:41 +01:00
Marc Durdin
09710a190c
Merge pull request #15186 from keymanapp/dependabot/npm_and_yarn/developer/src/server/src/win32/trayicon/addon-src/glob-10.5.0
chore(deps): bump glob from 10.4.5 to 10.5.0 in /developer/src/server/src/win32/trayicon/addon-src
2025-12-03 15:02:36 +01:00
dependabot[bot]
e4606e4925
chore(deps): bump glob
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.4.5...v10.5.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 10.5.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-03 12:55:03 +00:00
Marc Durdin
10ce06790a
Merge pull request #15185 from keymanapp/dependabot/npm_and_yarn/multi-3bf2940f2d
chore(deps): bump js-yaml and @microsoft/api-documenter
2025-12-03 13:54:01 +01:00
Marc Durdin
9de8371cfe docs(developer): add/update API docs
Test-bot: skip
Build-bot: skip
2025-12-03 13:51:30 +01:00
Marc Durdin
0d8999574a
Merge pull request #15184 from keymanapp/dependabot/npm_and_yarn/resources/build/pr-build-status/glob-10.5.0
chore(deps-dev): bump glob from 10.4.5 to 10.5.0 in /resources/build/pr-build-status
2025-12-03 13:45:25 +01:00
Marc Durdin
024432377a
Merge pull request #15173 from keymanapp/dependabot/npm_and_yarn/resources/build/pr-build-status/js-yaml-4.1.1
chore(deps-dev): bump js-yaml from 4.1.0 to 4.1.1 in /resources/build/pr-build-status
2025-12-03 13:42:16 +01:00
Keyman Server
65dabe45df
Merge pull request #15272 from keymanapp/auto/cherry-pick-18.0.245-history-to-alpha
auto: cherry-pick 18.0.245 history to alpha
2025-12-03 08:34:11 +01:00
Keyman Build Agent
a967c9f072 auto: cherry-pick 18.0.245 history to alpha
Build-bot: skip
Test-bot: skip
2025-12-03 01:33:04 -06:00
Keyman Server
5cc3c6151d
Merge pull request #15266 from keymanapp/auto/version-master-19.0.170
auto: increment master version to 19.0.170
2025-12-02 19:04:06 +01:00
Keyman Build Agent
31c4013576 auto: increment master version to 19.0.170
Test-bot: skip
Build-bot: skip
2025-12-02 12:01:33 -06:00
Darcy Wong
638c474579
Merge pull request #15261 from keymanapp/chore/fv-all-versions
chore(common): Update FirstVoices keyboard versions in keyboards.csv
2025-12-02 19:21:38 +07:00
Marc Durdin
be5715f135
Merge pull request #15256 from keymanapp/maint/core/15254-verify-changes-to-ldml-consts
maint(core): verify that keyman_core_ldml.h is in sync
2025-12-02 05:28:13 +01:00
Darcy Wong
8059363256 chore(common): Update FirstVoices keyboard versions in keyboards.csv 2025-12-02 10:54:17 +07:00
Keyman Server
1db912b150
Merge pull request #15259 from keymanapp/auto/version-master-19.0.169
auto: increment master version to 19.0.169
2025-12-01 19:04:12 +01:00
Keyman Build Agent
2d2782bd6c auto: increment master version to 19.0.169
Test-bot: skip
Build-bot: skip
2025-12-01 12:02:08 -06:00
Marc Durdin
9335a82530 maint(core): verify that keyman_core_ldml.h is in sync
Fixes: #15254
Test-bot: skip
Build-bot: skip build:linux,mac,windows
2025-12-01 17:11:57 +01:00
Marc Durdin
307f600f43
Merge pull request #13663 from MattGyverLee/feat/android/keyboard-min-max
fix(android): address keyboard height vs touch height race after keyboard height preference change (also min max heights + docs)
2025-12-01 14:22:25 +01:00
Marc Durdin
cbccf2567f
Merge pull request #15243 from keymanapp/fix/developer/15242-handle-errors-in-touch-layout-on-load
fix(developer): handle errors in .keyman-touch-layout file when loading
2025-12-01 14:21:43 +01:00
Darcy Wong
fd9d7f31f9
Merge pull request #15253 from keymanapp/docs/ios/cdn-dev
docs(ios): Use /cdn/dev assets for Engine guides
2025-12-01 15:50:39 +07:00
Darcy Wong
c909c020f9
Merge pull request #15247 from keymanapp/docs/android/broadcast-font-name
docs(android): Document Keyman API for keyboard font change
2025-12-01 15:43:28 +07:00
Marc Durdin
29be0176bb
Merge pull request #15193 from Nnyny/chore/android/sendCurrentFontName
chore(android): add intent to broadcast font name
2025-12-01 09:21:12 +01:00
Darcy Wong
d89e90a404
Merge branch 'master' into chore/android/sendCurrentFontName 2025-12-01 08:46:29 +07:00
Darcy Wong
ed333749de docs(ios): Use /cdn/dev assets for Engine guides 2025-12-01 08:06:01 +07:00
Keyman Server
5322d6fcf7
Merge pull request #15252 from keymanapp/auto/version-master-19.0.168
auto: increment master version to 19.0.168
2025-11-28 19:08:48 +01:00
Keyman Build Agent
bbafac8545 auto: increment master version to 19.0.168
Test-bot: skip
Build-bot: skip
2025-11-28 12:06:12 -06:00
Marc Durdin
00d0ef5e28
Merge pull request #15246 from keymanapp/chore/windows/add-wow64kbd-explorer
chore(windows): add wow64kbd support app for researching WOW64 reqs
2025-11-28 10:48:59 +01:00
Marc Durdin
1a0156bff8
Merge pull request #15245 from keymanapp/refactor/windows/syskbd
refactor(windows): merge syskbdnt.cpp and syskbdnt64.cpp into RightAltEmulationCheck.cpp
2025-11-28 10:48:49 +01:00
Marc Durdin
0949484a18
Merge pull request #15244 from keymanapp/change/windows/add-unit-tests-to-keyman32-build
change(windows): add unit testing to keyman32 build
2025-11-28 10:48:38 +01:00
Marc Durdin
ff984c8144
chore: Update windows/src/engine/keyman32/RightAltEmulationCheck.cpp
Build-bot: skip

Co-authored-by: rc-swag <58423624+rc-swag@users.noreply.github.com>
2025-11-28 10:26:07 +01:00
Darcy Wong
fd7c1b3683 docs(android): Document Keyman API for keyboard font change 2025-11-28 10:55:54 +07:00
Marc Durdin
ec8908ecc7 chore(windows): add wow64kbd support app for researching WOW64 reqs
This app reports on WOW64 identification function results, and reports
on kbdxx.dll file alignment by printing a hex dump of the first 44 bytes
(which is the 32 bit size of the structure). Manual review of the hex
dump should be possible to determine if we have the expected alignment,
which should be 32 bit on a 32 bit Windows installation, but 64 bit on
any 64 bit other Windows installations, even with a 32 bit process.

wow64kbd is not included in the normal build. Build when needed; you can
copy entire folder to a target computer and run `run.bat` to get a full
report.

`./build.sh test` will also run the same test on the local machine.

Test-bot: skip
Build-bot: skip
2025-11-27 11:06:01 +01:00
Marc Durdin
404a9ea244 refactor(windows): merge syskbdnt.cpp and syskbdnt64.cpp into RightAltEmulationCheck.cpp
Remove a number of unused bits and pieces, and merge the one remaining
function in syskbdnt.cpp, `KeyboardGivesCtrlRAltForRAlt` with the
corresponding function in syskbdnt64.cpp.

Add a unit test for `ReadAltGrFlagFromKbdDll` to ensure that it is
working correctly across various architectures.

Test-bot: skip
2025-11-27 09:37:59 +01:00
Marc Durdin
ca77e41d74 change(windows): add unit testing to keyman32 build
Rename keyman-engine-tests.vcxproj to keyman32.tests.vcxproj, move up a
folder, rename other files to match test filename conventions, update
vcxproj for vs2022, and build and run this from build.sh:test.

Also remove keyman-engine.vcxproj, instead integrating the static lib
version of keyman32 into keyman32.vcxproj. One day in the future, we
could split back the other way, and have the DLL be essentially a link
action from the .lib, but that's higher complexity to setup.

Add a configuration step to install NuGet packages for Google Test
specifically for keyman32.tests.vcxproj. If we add Google Test to other
msbuild projects, we could move the packages/ up to top level of the
repo in the future (similar to node_modules) to reduce number of
configuration downloads.

Build-bot: skip build:windows,developer
Test-bot: skip
2025-11-27 09:11:39 +01:00
Marc Durdin
3eaaacd706 fix(developer): handle errors in .keyman-touch-layout file when loading
If the .keyman-touch-layout file has validation errors, Keyman Developer
will now report the first validation error in the message window, rather
than silently closing the whole keyboard editor. The
.keyman-touch-layout file will be loaded in Code view, and once the
first validation error is addressed, switching to Design view will
report the next error.

For future improvement:
* reporting multiple validation errors
* reporting line number of error

Fixes: #15242
Test-bot: skip
2025-11-27 05:50:36 +01:00
Keyman Server
a45d6db423
Merge pull request #15241 from keymanapp/auto/version-master-19.0.167
auto: increment master version to 19.0.167
2025-11-26 19:02:39 +01:00
Keyman Build Agent
95c17494ec auto: increment master version to 19.0.167
Test-bot: skip
Build-bot: skip
2025-11-26 12:01:34 -06:00
Marc Durdin
4dd066443a
Merge pull request #15236 from keymanapp/fix/windows/15233-debugging-message-separators
fix(windows): escape backslashes in path in debugging message
2025-11-26 06:43:29 +01:00
Marc Durdin
565af2d30e fix(windows): escape backslashes in path in debugging message
Fixes: #15233
Test-bot: skip
Build-bot: skip
2025-11-26 05:53:02 +01:00
Matthew Lee
d2b40bd3c1
Update android/docs/engine/KMManager/getKeyboardHeightMin.md
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2025-11-25 02:39:28 -06:00
Matthew Lee
8bcf03cb1e
Update android/KMEA/app/src/main/java/com/keyman/engine/KMManager.java
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-11-25 02:35:58 -06:00
Claude
99704c4ec2
fix(android): resolve PR review comments for keyboard height min/max
Addresses review feedback from Marc and Darcy:

- Add JavaDoc comments to getKeyboardHeightMin() and getKeyboardHeightMax()
  explaining the purpose, parameters, and return values
- Implement separate pending height tracking per keyboard type (in-app/system)
  and orientation (portrait/landscape) instead of a single flag
- Add four preference keys following KMKey_ naming convention:
  KMKey_PendingHeightUpdate_InappPortrait, KMKey_PendingHeightUpdate_InappLandscape,
  KMKey_PendingHeightUpdate_SystemPortrait, KMKey_PendingHeightUpdate_SystemLandscape
- Create helper function getPendingHeightKey() to determine the correct key
- Create setPendingHeightUpdate() and getAndClearPendingHeightUpdate() functions
- Fix applyKeyboardHeight() to use new helper functions and remove broken
  heightApplied variable and duplicate pending height logic
- Update KMKeyboard.onResume() to use getAndClearPendingHeightUpdate()
- Add documentation links for getKeyboardHeightMin and getKeyboardHeightMax
  in index.md
2025-11-24 23:14:52 +00:00
Matthew Lee
3ed2d4a21e
Update android/KMEA/app/src/main/java/com/keyman/engine/KMManager.java
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-11-24 01:10:05 -06:00
Nnyny
e215603146 fix: change intent ID 2025-11-24 13:50:26 +07:00
Darcy Wong
9c9696c5fd
Merge pull request #15224 from keymanapp/chore/android/clarify-pr-title
chore(android): Clarify PR title for #15136
2025-11-24 11:33:50 +07:00
Darcy Wong
dfa9695e07 chore(android): Clarify PR title for #15136 2025-11-24 11:06:04 +07:00
Matthew Lee
43bb10d967
Update android/docs/engine/KMManager/getKeyboardHeightMin.md
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2025-11-23 19:25:36 -06:00
Matthew Lee
1662802bd5
Update android/KMEA/app/src/main/java/com/keyman/engine/KMManager.java
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-11-22 02:35:00 -06:00
Matthew Lee
3962d5795d
Update android/KMEA/app/src/main/java/com/keyman/engine/KMManager.java
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-11-22 02:34:49 -06:00
Matthew Lee
6be82ac9b8 Adding Docs for getKeyboardHeightMin/max & updating webview height
Handling invalid orientations

updating orientation logic

refresh webview height if ApplyKeyboardHeight() has been applied without KB active

I ran into a bug building this code into app-builders and fixed it downstream. This commit pushes it upstream.

While resize dialog is open:
- Keyboard WebView is NOT loaded (isKeyboardLoaded() == false)
- ACTION_UP saves to SharedPreferences:  Works
 -But skips WebView layout update:  Because keyboard not loaded
 - User exits dialog, keyboard appears:
    - If the keyboard WebView loads and reads from SharedPreferences properly:  Works
    - But if there's a timing issue or the WebView had old layout params cached:  Touch zone mismatch
2025-11-21 14:50:03 -06:00