Commit graph

4037 commits

Author SHA1 Message Date
rc-swag
15e91ab452
Merge pull request #16423 from MattGyverLee/fix/windows/16422-caps-lock-state-on-keyboard-switch
fix(windows): resync caps lock state when Keyman keyboard is activated
2026-08-28 15:31:03 +10:00
rc-swag
9abf6d23c3
Merge pull request #16430 from keymanapp/fix/windows/15187/msi-uninstaller-access-helper
fix(windows): add manifest to insthelper and set trustinfo to asInvoker
2026-08-28 09:44:00 +10:00
rc-swag
16a1a6e788 fix(windows): remove old TODO comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-08-27 07:46:17 +10:00
rc-swag
3597a555e7 fix(windows): insthelp trustinfo and add manifest
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
Change the manifest trustinfo to asInvoker from requireAdminstrator.
This was causing the preuninstaller to fail as it couldn't elevate.

This also adds the manifest back into the build as it was previously
removed.
fixes: 15187
2026-08-26 22:48:38 +10:00
Matthew Lee
446559c221
Update windows/src/engine/keyman32/capsstate.cpp
Co-authored-by: rc-swag <58423624+rc-swag@users.noreply.github.com>
2026-08-24 09:19:47 -04:00
Matthew Lee
fb91d2fc75
Update windows/src/engine/keyman32/capsstate.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-08-22 10:26:53 +03:00
Matthew Lee
dcbfcf810f
Update windows/src/engine/keyman32/capsstate.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-08-22 10:26:23 +03:00
Matthew Lee
13326b4091
Update windows/src/engine/keyman32/capsstate.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-08-22 10:25:46 +03:00
Matthew Lee
f586e94cf5
Update windows/src/engine/keyman32/appint/aiTIP.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-08-22 10:25:22 +03:00
Matthew Lee
5d073fa44f fix(windows): resync caps lock state when Keyman keyboard is activated
The Caps Lock and Num Lock flags in Globals::ShiftState() are updated
only as key events pass through the engine, so they go stale when the
toggle is changed while a non-Keyman layout is active. The existing
resync in GetCapsAndNumlockState() runs on window focus change, which a
keyboard switch does not trigger, so the core processor was told Caps
Lock was off until the user toggled it twice.

Extract the toggle resync as RefreshToggleState() and call it from
TIPActivateKeyboard(), which is the profile activation path for both
Win+Space and the Windows language selector.

Fixes #16422

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011GdFpFi5eqJP6C1YjuQytY
2026-08-21 23:21:34 +03:00
Marc Durdin
adaf2337c5
Merge pull request #12191 from keymanapp/epic/kmc-convert
epic: kmc-convert 😎
2026-08-20 16:14:11 +07:00
Marc Durdin
f498400b86
Merge pull request #16363 from keymanapp/fix/windows/12812-handle-invalid-font-files-in-package-install
fix(windows): handle font and package .zip format errors during package installation
2026-08-19 13:53:28 +07:00
Marc Durdin
3a4803c359
Merge pull request #16362 from keymanapp/fix/windows/12905-support-png-icon-in-tray
fix(windows): support .png format icon in tray icon
2026-08-19 13:53:04 +07:00
Marc Durdin
51368402c4
Merge branch 'master' into epic/kmc-convert
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-08-18 20:26:07 +07:00
SabineSIL
882ede0c54
feat(developer): kmc-convert: new conversion .keylayout->kmn 😎 (#12564)
kmc-convert provides tooling to convert between various common keyboard
description file formats. Each conversion will be implemented in its
single, separate module (and each module will done in its own PR)

This PR will address the conversion **keylayout → kmn**

Co-authored-by: Marc Durdin <marc@durdin.net>
2026-08-18 15:16:02 +02:00
Marc Durdin
4a378252b0 fix(windows): improve icon resource management and avoid double-destroy
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Copy the handle of the icon from kmcomapi rather than assigning, so that
we do not end up calling DestroyIcon twice on the same handle (once by
FTrayIcon destruction, and once by kmcomapi).

Co-authored-by: Ross Cruickshank <rc-swag@users.noreply.github.com>
2026-08-18 08:01:12 +02:00
Marc Durdin
eebe740888
Merge pull request #16364 from keymanapp/feat/windows/15542-pass-lang-parameter-to-keyboard-download
feat(windows): pass UI language to keyboard download page
2026-08-17 07:57:13 +02:00
Darcy Wong
669afb25b0
Merge pull request #16358 from keymanapp/chore/crowdin-es
chore(android,ios): Update Crowdin strings for Spanish - Latin America
2026-08-14 08:32:07 -05: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
9526eb72a6
Merge pull request #16365 from keymanapp/chore/windows/remove-junk-files
chore(windows): remove junk files from kmshell
2026-08-14 08:07:58 +02:00
Marc Durdin
aff7665c07 refactor(windows): remove one use of with in kpinstallfont
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Ross Cruickshank <rc-swag@users.noreply.github.com>
2026-08-14 07:57:57 +02:00
Marc Durdin
16559f9a31 docs(windows): update comment for TfrmOSKOnScreenKeyboard.OskModifierEvent 2026-08-14 07:54:20 +02:00
Marc Durdin
2c5157b570 chore(windows): remove junk files from kmshell
Test-bot: skip
2026-08-13 15:26:49 +02:00
Marc Durdin
43550fa58e feat(windows): pass UI language to keyboard download page
Fixes: #15542
Relates-to: keymanapp/keyman.com#818
2026-08-13 15:11:26 +02:00
Marc Durdin
e18df382f5 fix(windows): handle font and package .zip format errors during package installation
Quietly handle invalid font files while installing, and cleanly abort
install of broken packages. Report the errors to Sentry but do not
crash.

Fixes: #12812
Fixes: KEYMAN-WINDOWS-45K
Fixes: KEYMAN-WINDOWS-6S8
Fixes: KEYMAN-WINDOWS-430
Fixes: KEYMAN-WINDOWS-7T3
Fixes: KEYMAN-WINDOWS-7SY
Fixes: KEYMAN-WINDOWS-42Z
2026-08-13 14:42:50 +02:00
Marc Durdin
5d0f6f50db fix(windows): ignore invalid keyboard icons in kmcomapi
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-08-13 14:41:50 +02:00
Marc Durdin
d7c88b6bae fix(windows): support .png format icon in tray icon
Fixes: KEYMAN-WINDOWS-3CT
Fixes: #12905
2026-08-13 11:34:46 +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
Darcy Wong
e2249734ea chore(common): Update Crowdin strings for Spanish (Latin America) 2026-08-12 09:20:12 -05:00
SabineSIL
450e23aae1
Merge branch 'master' into chore/developer/scatteredCode/cleanup_VKeys
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-08-12 10:44:53 +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
22a04c14fd Merge branch 'chore/developer/scatteredCode/cleanup_VKeys' of https://github.com/keymanapp/keyman into chore/developer/scatteredCode/cleanup_VKeys 2026-08-07 12:55:24 +02:00
Sabine
dde35c87cc chore(common): undo last changes 2026-08-07 12:55:06 +02:00
SabineSIL
540f8c5db8
Merge branch 'master' into chore/developer/scatteredCode/cleanup_VKeys 2026-08-07 12:01:43 +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
fd3610b09f
Merge branch 'master' into feat/windows/13566/check-metered-connection
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-07-27 13:36:33 +10:00
rc-swag
f027c297fd feat(windows): send errors to sentry
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-07-16 15:58:09 +10:00
rc-swag
ffd45e1394 fix(windows): fix caution image allignment metered
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
connection.
2026-07-14 15:44:29 +10:00
rc-swag
c32f731978 fix(windows): need restart only case manual update
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
Also made the form change size if no metered connection as
it was looking to sparse.
2026-07-14 11:30:02 +10:00
rc-swag
62c85e3729 fix(windows): add required download case
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
add required download message in lieu of download status bar.
Also removed red warning background colour and add a caution icon.
2026-07-13 16:03:31 +10:00
Marc Durdin
cda7dc6d24 chore: remove deprecated "X-UA-Compatible" and "apple-mobile-web-app-capable" metas
For Keyman Developer Server, add app.webmanifest so that it can be saved
to the home screen; other pages should not require this.

Fixes: #16172
Test-bot: skip
2026-07-01 10:27:22 +02:00
rc-swag
60094738d9 feat(windows): wrap network util in class
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-30 14:42:49 +10:00
rc-swag
0bd7bf1ed2
feat(windows): apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-06-30 13:15:05 +10:00
rc-swag
448d63e156 feat(windows): apply exception check
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Keyman currenlty only supports Windows 10 and 11
so the exception was low risk. If it is not available we
return false as metered connections werent possilble before
this the functionality will be the consistent with those
windows versions. i.e. always updating in the background
2026-06-25 11:31:15 +10:00
rc-swag
85da9dc03c
feat(windows): apply suggestions
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-06-25 10:57:40 +10:00
rc-swag
3974f035f9 feat(windows): use enum to drive installfrm layout 2026-06-25 10:49:35 +10:00
rc-swag
acf64f1897 fix(windows): add update property to remote check
This just adds the update property to the HTTP request
in the RemoteUpdateCheck call.

Fixes: #15433
2026-06-23 17:07:38 +10:00
rc-swag
5e26d5dd08 feat(windows): address review comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-23 15:56:34 +10:00
rc-swag
293f8ec47a
feat(windows): apply suggestions from code review
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-06-23 11:41:02 +10:00