Commit graph

977 commits

Author SHA1 Message Date
rc-swag
02db51c9b6 fix(windows): address review comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-28 23:16:17 +10:00
rc-swag
c23284ea51 fix(windows): rename fTestEatenBuf to fOnTestEatenBuf
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-02 16:19:45 +10:00
rc-swag
d2012ed79b fix(windows): provide clarity to log message 2026-04-02 13:41:51 +10:00
rc-swag
d7370c472e fix(windows): update lastkey in tip processor
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Update the lastkey, lastscankey and lasttransition in aaitp.
This ensures that when the pfEaten is FALSE and the get_message_hook
does not recieve the key press the "last" value is correct.
2026-03-31 22:13:45 +10:00
rc-swag
f0cf996976 fix(windows): make log code message fix
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-03-30 13:43:11 +10:00
rc-swag
7084d64b7b fix(windows): clean up debug logs
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-03-26 22:44:47 +10:00
rc-swag
a1c493665e fix(windows): add key transition to better track key press
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
Added a Key transition member to the thread globals.
This help so better insure we actually matching the key value
that may have been cleared by kmhook_getmessage to the right key.
More importantly makes sure we are not matching it to the wrong
key press. This was happening when a synthazised capslock key press was followed
by and actuall capslock key press.
2026-03-25 15:16:26 +10:00
rc-swag
c1c3952717 fix(windows): reduce the number of places km scan flag
The SCAN_FLAG_KEYMAN_KEY_EVENT was checked in OnKey pressess as well
as an early return option in _KeymanProcessKeystroke. This change
removes the extra and allows _KeymanProcessKeystroke, to be the
central place for code readablitiy and maintainablity.

It also adds a processToggleChange call in kmhook_getmessage as
it is sometimes called before the TIP hook. the call is also idempotent
2026-03-20 09:22:35 +10:00
rc-swag
f4c5d9df02 fix(windows): fix logic error with caps_changed_state
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Return early if caps lock state is unchanged.
2026-03-16 15:00:12 +10:00
rc-swag
6277735dbb fix(windows): fix typos and grammar in commments 2026-03-16 12:02:26 +10:00
rc-swag
95a7c6008b fix(windows): simplify the processCapsLock if else
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
also update external processsCaps Lock call to handle the
Updateable change
2026-03-13 14:16:48 +10:00
rc-swag
bc6b0ea773 fix(windows): change caps on updateable
This change also adds a check in aiTIP.cpp to check the
thread data stored last key press and scan code. Before
if the scan code had been cleared then we would process the
synthasized caps lock key presses which was just for the system
and not for the current Keyman app.
2026-03-12 20:20:42 +10:00
Marc Durdin
751fc79014
Merge pull request #14621 from keymanapp/epic/win-arm
epic: ARM support for Windows 🦾
2025-12-22 03:37:22 +01:00
rc-swag
ae979d879f
Merge pull request #15360 from keymanapp/feat/windows/epic-arm-basic-regression-test
feat(windows): epic arm basic regression test 🦾
2025-12-19 10:12:46 +10:00
rc-swag
c3e8d648c7 chore: Merge branch 'master' into chore/merge-master-to-epic-win-arm 2025-12-18 15:45:55 +10:00
rc-swag
c1cd17bc57 feat(windows): fix typo 2025-12-18 14:46:10 +10:00
Marc Durdin
a77518eb28 chore(windows): fix typo in error message
Build-bot: skip
Test-bot: skip
2025-12-17 05:41:20 +11:00
Marc Durdin
1332a9c3f7
Merge pull request #15351 from keymanapp/fix/windows/15345-use-thai-kedmanee-for-ralt-unit-test
chore(windows): correct kbda1 to kbdth0 in comment in unit test
2025-12-16 19:13:07 +01:00
Marc Durdin
484acff8e8
Merge pull request #15353 from keymanapp/maint/win/15065-arm64-core-test
maint(windows): add GitHub Action for ARM64 test for Keyman Core 🦾
2025-12-16 18:49:57 +01:00
rc-swag
a9a62254e7 feat(windows): pr for running some regression tests 2025-12-16 19:31:58 +10:00
Marc Durdin
b26a2f1ad4 fix(windows): use Thai Kedmanee instead of Arabic 101 in RightAltEmulationCheck.tests.cpp
Fixes: #15345
Test-bot: skip
2025-12-16 07:05:09 +11:00
Marc Durdin
a7b38dcf8b
Merge pull request #15335 from keymanapp/feat/windows/15218-report-low-level-hook-reinstall
feat(windows): report a sentry event when low level hook is reinstalled
2025-12-15 20:03:23 +01:00
rc-swag
330f2b8163 feat(windows): no arm binaries on x64 machine
kmtiparm64x.dll was correctly not installed on x86-x64 machines
however keymanarm64.dll and keymanhp.arm64.exe were still being
installed. It will be cleaner if we don't install them.
2025-12-15 15:18:39 +10:00
Marc Durdin
49a3a1d643 chore(windows): correct kbda1 to kbdth0 in comment in unit test
Fixes: #15345
Test-bot: skip
Build-bot: skip
2025-12-14 03:54:26 +11:00
rc-swag
afed7da2f9
Merge branch 'epic/win-arm' into docs/windows/15237/kmtip-readme 2025-12-12 21:30:26 +10:00
rc-swag
be3fbf4845 docs(windows): review comments 2025-12-12 17:41:56 +10:00
rc-swag
4e7d2dddca
feat(windows): review comments
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2025-12-12 17:24:29 +10:00
Marc Durdin
66a22754cb
Merge branch 'master' into feat/windows/15218-report-low-level-hook-reinstall 2025-12-11 21:22:38 +01:00
Marc Durdin
aeb7dc7934
Merge branch 'master' into chore/windows/remove-unused-variable 2025-12-11 21:22:32 +01:00
Marc Durdin
612a0173db fix(windows): use Thai Kedmanee instead of Arabic 101 in RightAltEmulationCheck.tests.cpp
Fixes: #15345
Test-bot: skip
2025-12-12 06:11:33 +11:00
rc-swag
d6568fb8f1 docs(windows): describe kmtip as well as the arm64X 2025-12-11 14:10:41 +10:00
Marc Durdin
6c7bfd3c55 chore(windows): remove unused variable
Test-bot: skip
2025-12-10 18:28:38 +08:00
Marc Durdin
930ae121c4 feat(windows): report a sentry event when low level hook is reinstalled
Reports also on errors during install / uninstall of the low level hook.

Fixes: #15218
Test-bot: skip
2025-12-10 08:27:12 +00:00
rc-swag
4ac24f7b7b chore(windows): Merge branch 'epic/win-arm' into feat/windows/64x-pure-forwarder-wix-3 2025-12-09 14:00:45 +10:00
rc-swag
e17e91e2a6
docs(windows): apply review suggestion
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-12-08 16:11:51 +10:00
Marc Durdin
d7f21e80ec chore: Merge remote-tracking branch 'origin/epic/win-arm' into auto/A19S17-merge-master-into-win-arm
Significant conflict resolution fixes required to:
*	windows/src/engine/keyman32/build.sh
*	windows/src/engine/keyman32/keyman-engine.vcxproj
*	windows/src/engine/keyman32/keyman32.vcxproj
*	windows/src/engine/keyman32/keyman32.vcxproj.filters
*	windows/src/engine/keyman32/tests/keyman32.tests.vcxproj
2025-12-05 10:16:37 +01:00
Marc Durdin
f813442c40
Merge pull request #15276 from keymanapp/revert-14799-change/windows/include-map2pdb-for-relevant-projects
change(windows): Revert "change(windows): include map2pdb generation for relevant Delphi projects"
2025-12-05 07:10:52 +01:00
Marc Durdin
e9ac9c25a3
chore(windows): don't revert minor unrelated parts of map2pdb cleanup 2025-12-03 14:25:29 +01:00
Marc Durdin
6c99f33bcc
Revert "change(windows): include map2pdb generation for relevant Delphi projects" 2025-12-03 14:13:54 +01:00
rc-swag
69f2c0dc1c docs(windows): add kmtip readme
Add a detailed desctription of kmtiparm64x.dll

Fixes:#15237
Test-bot: skip
2025-12-03 16:12:18 +10:00
Marc Durdin
c524db41b9 maint(common): use builder_launch for child builds
Fixes: #15130
Test-bot: skip
2025-12-02 06:17:31 +01:00
rc-swag
49fc44caba feat(windows): remove quotes wxs rename lowercase 2025-12-02 12:05:01 +10:00
rc-swag
8fac9c038e
feat(windows): address review comments
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-12-02 10:47:59 +10:00
rc-swag
f385c31ba2 feat(windows): sign kmtiparm64x-dll 2025-12-01 19:55:11 +10: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
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
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
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