Commit graph

989 commits

Author SHA1 Message Date
rc-swag
62dd0de786 fix(windows): add compile for base keyoard to api
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
What we was needed was the ability to recompile
installed keyboards against a basekeyboard id.
MCompileForBaseKeyboard which will take the
base keyboard id. This allows the call to be done
elevated and seperates out the actuall selecting
the base keyboard.
2026-08-21 13:53:26 +10:00
rc-swag
9108af2ed2 chore(windows): Merge branch 'master' into fix/windows/15152/basekeyboard-user-not-admin
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
# 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
2026-08-18 16:16:55 +10:00
Marc Durdin
9f8717e4f8
Merge pull request #16361 from keymanapp/fix/windows/12611-release-shift-on-osk-with-right-shift
fix(windows): release shift key on OSK when user releases physical right shift
2026-08-14 11:30:39 +02:00
Marc Durdin
16559f9a31 docs(windows): update comment for TfrmOSKOnScreenKeyboard.OskModifierEvent 2026-08-14 07:54:20 +02:00
Marc Durdin
2e7772b87c fix(windows): release shift key on OSK when user releases physical right shift
When the user clicks either Shift key on the OSK, that emits a VK_LSHIFT
down key event. If the user subsequently presses and releases the Right
Shift key on their hardware keyboard, that does not reset the isDown
state for the Left Shift key, so the key is not released on the OSK, and
the state becomes inconsistent for apps also.

This change emits a key up event, if when Right Shift is released,
Keyman detects that Left Shift is still "down". Note that if the user
presses and holds Left Shift, and presses and releases Right Shift, the
left shift state will be reset before the users releases Left Shift. But
that's a pathological state!

Fixes: #12611
2026-08-13 10:49:13 +02:00
Sabine
a2bf976e5e chore(common): remove commented old #defines; in some files remove paths for #include km_vkey 2026-08-11 09:46:49 +02:00
Sabine
0b7af5b771 chore(common): include km_vkey.h 2026-08-07 16:00:19 +02:00
Sabine
dde35c87cc chore(common): undo last changes 2026-08-07 12:55:06 +02:00
Sabine
9854206f6a chore(common): use shorter input paths for km_vkey.h and #include also in windows/src/engine/... 2026-08-07 11:59:42 +02:00
rc-swag
2f4c428b13 fix(windows): restore UpdateBaseLayout interface
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
The original change, changed the InKeymanKyboardInstalled
UpdateBaseLayout inteface and it didn't need to. This
change restores it.
2026-07-29 15:03:57 +10:00
rc-swag
92643e3569 fix(windows): handle basekeyboard change non-admin user
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-07-29 14:47:00 +10:00
Marc Durdin
94723ba556 chore(common): move common cpp files and remove unused files
* Move the following files from common/windows/cpp/include/ to
  common/include/:
  * keymanversion.h
  * vkeys.h

* Move the following file from common/windows/cpp/ to common/cpp/:
  * vkeys.cpp

* Move crc32.cpp,crc32.h into kmcmplib, as they are only used there.

* Remove unused ConvertUTF.c and ConvertUTF.h.

* Update references to the above files.

* Remove precompiled header refs from vkeys.cpp and change data type to
  `char*` for types in vkeys.cpp (unless `USE_CHAR16_T` is defined), so
  that it is more cross-platform accessible, update usages accordingly,
  fixup project definitions accordingly.

* Remove unused define `KMN_KBP_EXPORTING` from kmcmplib/meson.build.

Fixes: #15565
Test-bot: skip
2026-05-20 13:44:05 +02:00
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