Commit graph

33476 commits

Author SHA1 Message Date
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
rc-swag
6aff22e259 feat(windows): update engine solution
Update engine.sln and the keyman32, keymanhp, kmtip projects for
include and exclude ARM64EC as required.
2025-12-01 17:03:28 +10: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
rc-swag
62af1f0c1c fix(windows): ensure download is new process 2025-12-01 09:47:05 +10: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
rc-swag
d83bd80585 feat(windows): tidy up 2025-11-27 11:26:35 +10:00
rc-swag
dce775c52d
Merge branch 'epic/win-arm' into feat/windows/64x-pure-forwarder-wix-3 2025-11-27 10:08:00 +10:00
rc-swag
6145c1d4e7
Merge pull request #15235 from keymanapp/feat/windows/15228/keyman-x64-arm-ico
feat(windows): adds keyman x64 and ARM Icon 🦾
2025-11-27 10:01:00 +10: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
rc-swag
e0c63a4e47 chore(windows): Merge branch 'epic/win-arm' into feat/windows/64x-pure-forwarder-wix-3 2025-11-26 23:15:25 +10:00
rc-swag
b1db67a9a9
Merge pull request #14438 from keymanapp/feat/windows/11905/keymanx64-keymanarm64
feat(windows):  implementing keymanarm64.dll & kmtiparm64.dll 🦾
2025-11-26 23:03:32 +10:00
rc-swag
dba3836f2e
feat(windows): apply review comments
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-11-26 22:10:33 +10:00
rc-swag
25e5aff4cc feat(windows): update etl2log and Readme 2025-11-26 22:05:13 +10:00
rc-swag
9e7fe64f67
feat(windows): apply review suggestions
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-11-26 21:38:35 +10:00
rc-swag
df8d93e8f9 feat(windows): remove keymandesktop90-64-ico file 2025-11-26 15:49:19 +10: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
rc-swag
928120b232 feat(windows): add keyman x64 and arm icon
Fixes: 15228
Test-bot: skip
2025-11-26 11:35:33 +10: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
rc-swag
4c4b0be456 feat(windows): audit _WIN64 macro 2025-11-25 16:01:52 +10:00
rc-swag
19c70e9dc2 chore(windows): Merge branch 'feat/windows/11905/keymanx64-keymanarm64'
of https://github.com/keymanapp/keyman into feat/windows/11905/keymanx64-keymanarm64
2025-11-25 12:47:58 +10:00
rc-swag
c4b6d06e43 feat(windows): combine start host 64 process functions
also removed sentry references. Fixed the manifest
references.
2025-11-25 12:42:15 +10: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
rc-swag
2d800b2008
feat(windows): address review comments
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-11-24 16:26:06 +10: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
rc-swag
bc927bc4c3 feat(windows): fix version rc files to display correct
fix the version.rc files to display the correct description
and file name for keymanhp.*.exe fix version rc files to display correct
Also fix up the Keymanengine arm64 version names.
2025-11-24 13:54:02 +10:00
rc-swag
33cdb0f54c feat(windows): fix manifest for each host 2025-11-24 13:52:51 +10:00
rc-swag
b60056b43e chore(windows): Merge branch 'feat/windows/11905/keymanx64-keymanarm64' into feat/windows/64x-pure-forwarder-wix-3
# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
#     Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
#     Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
2025-11-24 13:49:01 +10:00
rc-swag
0375dea3d6 feat(windows): remove custom built sentry.arm64.dll 2025-11-24 13:46:17 +10: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
Keyman Server
aafe5a1311
Merge pull request #15221 from keymanapp/auto/version-master-19.0.166
auto: increment master version to 19.0.166
2025-11-21 19:03:50 +01:00