Commit graph

35601 commits

Author SHA1 Message Date
Marc Durdin
945d2cf6d5
Merge pull request #16493 from keymanapp/fix/developer/16492-kmcmplib-message-pattern
fix(developer): add missing message parameters and cleanup kmc-kmn messages further
2026-09-01 22:33:15 +07:00
Marc Durdin
b2e72e94b9
Merge pull request #16445 from keymanapp/change/developer/14211-deprecate-fix-clearcontext
change(developer): deprecate `fix`, `clearcontext`, bump max .kmx version to 19.0
2026-09-01 22:32:31 +07:00
Marc Durdin
d496f8d59b
Merge pull request #16443 from keymanapp/maint/windows/16433-remove-koSwitchLanguageForAllApplications-and-cleanup
maint(windows): remove `koSwitchLanguageForAllApplications`, `koAutoSwitchOSKPages`, osVista, osWin7, osWin8, cleanup
2026-09-01 16:11:29 +07:00
Marc Durdin
947dbe9910
Merge pull request #16439 from keymanapp/refactor/windows/15333-cleanup
refactor(windows): cleanup unused wm_keyman_control values
2026-09-01 16:11:18 +07:00
Marc Durdin
9b80c56810
Merge pull request #16435 from keymanapp/fix/windows/15333-simplify-keyboard-refresh
fix(windows): simplify keyboard refresh and make it more on-demand
2026-09-01 16:10:39 +07:00
Marc Durdin
5c2702c51b
Merge pull request #16482 from keymanapp/fix/developer/10562-make-toolwindows-non-topmost-on-deactivate
fix(developer): make tool windows non-topmost when TIKE is deactivated
2026-09-01 15:50:33 +07:00
Marc Durdin
998574ef1a
Merge pull request #16480 from keymanapp/chore/developer/11249-strip-printing-support
chore(developer): strip out defunct printing support
2026-09-01 15:50:22 +07:00
Marc Durdin
3c44f8ab5b
Merge branch 'master' into fix/windows/15333-simplify-keyboard-refresh 2026-09-01 15:44:05 +07:00
Marc Durdin
b7f124a6c0
Merge pull request #16444 from keymanapp/refactor/windows/16434-rename-to-RefreshModifierState
refactor(windows): rename `GetCapsAndNumlockState()` to `RefreshModifierState()`
2026-09-01 15:37:51 +07:00
Marc Durdin
f438a519e1 fix(developer): add missing message parameters and cleanup kmc-kmn messages further
* kmcmplib messages need to use a standard pattern for parameters, which
  cannot be named. Several of the messages had the wrong pattern
* Tidy up the kmn-compiler-messages module and make it more consistent
  to reduce risk of this happening in the future
* Add a unit test to further verify the structure of the module as far
  as possible

Fixes: #16492
Test-bot: skip
2026-09-01 10:14:11 +02:00
Eberhard Beilharz
cb7bbe7495
Merge pull request #16449 from keymanapp/chore/web/uploadsourcemaps
chore(android): upload webview source map during android and ios build

Previously we uploaded the webview source map during a web build. This can lead to problems because that is not the actual artifact used for Android and iOS.

This change therefore moves uploading the webview source map to Sentry to the android and ios builds.
2026-09-01 09:01:20 +02:00
Marc Durdin
750ad89611 fix(developer): use KmcmpLibMessageParameters pattern for deprecation error message
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-09-01 07:42:50 +02:00
Marc Durdin
1e8cd24960
Merge pull request #16446 from keymanapp/fix/developer/13721-u16tok-targets-store-leading-whitespace
fix(developer): handle leading delimiters correctly in `u16tok()`
2026-09-01 12:27:16 +07:00
Marc Durdin
dd40dfcfbd
Merge pull request #16478 from keymanapp/chore/developer/server-remove-environment-version-duplication
chore(developer): remove duplicated versioning information from Server
2026-09-01 12:26:38 +07:00
Marc Durdin
1d83399b59
Merge pull request #16476 from keymanapp/fix/developer/12165-server-root-path-not-pwd
fix(developer): use path not dependent on pwd for starting Server
2026-09-01 12:26:27 +07:00
Marc Durdin
5a33d65081
Merge pull request #16483 from keymanapp/fix/windows/9694-show-console-window-twice
fix(developer): call 'Show Console' twice to make the console actually show on first use
2026-09-01 12:26:07 +07:00
Marc Durdin
941507ba97
Merge pull request #16474 from keymanapp/fix/developer/14159-charmap-scroll-wheel
fix(developer): improve scroll wheel behavior in Character Map
2026-09-01 12:04:22 +07:00
Marc Durdin
27d4acd0ad
Merge pull request #16479 from keymanapp/fix/developer/12070-handle-comment-without-trailing-space
fix(developer): handle comment without trailing whitespace
2026-09-01 12:03:06 +07:00
Eberhard Beilharz
7a0fa55a75
chore(web): address code review comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-08-31 19:02:05 +02:00
Marc Durdin
0f3e84bcc7 fix(windows): call 'Show Console' twice to make the console actually show on first use
The underlying issue may be in the node-hide-console-window component.
This fix is adequate in my view, for a low-use code path.

Fixes: #9694
Test-bot: skip
2026-08-31 14:56:12 +02:00
Marc Durdin
d1558946dd fix(developer): make tool windows non-topmost when TIKE is deactivated
When TIKE deactivates, any undocked tool windows retain their
WS_EX_TOPMOST exstyle, which means they stay on top of other
applications. To be polite, remove the topmost style when Keyman
Developer is deactivated - and set it on again when Keyman Developer is
reactivated, so that the windows continue to behave as expected
otherwise.

Fixes: #10562
Test-bot: skip
2026-08-31 14:38:29 +02:00
Marc Durdin
3d3a5ca1fb chore(developer): strip out defunct printing support
Printing has not been supported from Keyman Developer for quite some
time. This does not appear to have been raised as a user issue. Remove
printing support, and cleanup user interface. As a side-effect, this
will fix #11249, as Delphi's printer support will no longer poll for
default printer on start.

Fixes: #11249
2026-08-31 10:36:00 +02:00
Marc Durdin
efedd63fa4 chore(developer): remove version-data tests and add environment tests
Server lacks tests at present. Removing version-data tests as no longer
relevant meant that there were no tests! So, added environment tests
which relate to changes in #16476.
2026-08-31 10:25:10 +02:00
Marc Durdin
4c2ba9f8e0 fix(developer): handle comment without trailing whitespace
Fixes: #12070
Test-bot: skip
2026-08-31 10:07:00 +02:00
Marc Durdin
9f7beafc57 chore(developer): remove duplicated versioning information from Server
Use `KEYMAN_VERSION` instead of parsing version information.

Test-bot: skip
2026-08-31 09:52:30 +02:00
Marc Durdin
f65299cb36 fix(developer): use path not dependent on pwd for starting Server
Fixes: #12165
Test-bot: skip
2026-08-31 09:28:34 +02:00
Marc Durdin
d7b4084438 fix(developer): improve scroll wheel behavior in Character Map
The Character Map scroll will now scroll from current scroll position
when the scroll wheel is used, one row at a time, rather than moving the
currently selected cell. This behavior is more natural and allows mixed
use of the scrollbar and the scrollwheel.

Fixes: #14159
Test-bot: skip
2026-08-31 07:55:16 +02:00
Keyman Server
f8a5164c57
Merge pull request #16461 from keymanapp/auto/version-master-19.0.277
auto: increment master version to 19.0.277
2026-08-28 20:04:24 +02:00
Keyman Build Agent
932deccff4 auto: increment master version to 19.0.277
Test-bot: skip
Build-bot: skip
2026-08-28 13:01:38 -05:00
Marc Durdin
2f60544835 docs(developer): tweak comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
Co-authored-by: Sabine Schmitt <SabineSIL@users.noreply.github.com>
2026-08-28 17:31:06 +02:00
Eberhard Beilharz
20e651fd99
chore(web): add publishing symbols to TC ios release build
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip release:web,android,ios
2026-08-28 15:36:37 +02:00
Marc Durdin
3a6b5fd9a9
Merge branch 'master' into refactor/windows/16434-rename-to-RefreshModifierState
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-08-28 12:37:35 +07:00
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
Keyman Server
645ea4973f
Merge pull request #16451 from keymanapp/auto/version-master-19.0.276
auto: increment master version to 19.0.276
2026-08-27 20:04:07 +02:00
Keyman Build Agent
ecbe7d857b auto: increment master version to 19.0.276
Test-bot: skip
Build-bot: skip
2026-08-27 13:01:56 -05:00
Eberhard Beilharz
07e62e9fe2
chore(android): upload webview source map during android and ios build
Previously we uploaded the webview source map during a web build. This
can lead to problems because that is not the actual artifact used for
Android and iOS.

This change therefore moves uploading the webview source map to Sentry
to the android and ios builds.

Build-bot: skip build:web,android,ios
Test-bot: skip
2026-08-27 18:57:18 +02:00
Joshua Horton
4e5eab7e0f
Merge pull request #16437 from keymanapp/change/web/missing-stub-error
change(web): enhance missing-stubs error
2026-08-27 19:21:05 +07:00
Marc Durdin
babb473682 fix(developer): handle leading whitespace correctly in u16tok()
A string with leading delimiters passed into `u16tok()` would not skip
those delimiters. This impacted `&targets` store and other locations.

Note that this tightens input parameter checks for delimiters and
context as well.

Fixes: #13721
Test-bot: skip
2026-08-27 11:15:14 +02:00
Marc Durdin
14b2a9a168 change(developer): deprecate fix, clearcontext, bump max .kmx version to 19.0
Fixes: #14211
Test-bot: skip
2026-08-27 09:24:50 +02:00
Marc Durdin
07dddddfb2
Merge pull request #16415 from keymanapp/chore/mac/edit_doc_setup
chore(mac): update setup document
2026-08-27 13:32:54 +07:00
Marc Durdin
c56fac0530
Merge pull request #16432 from keymanapp/docs/mac/refresh-build-docs
docs(mac): refresh build/setup docs and remove APPSTORECONNECT_PROVIDER
2026-08-27 13:29:22 +07:00
Marc Durdin
33e64f1edd refactor(windows): rename GetCapsAndNumlockState() to RefreshModifierState()
Fixes: #16434
Test-bot: skip
2026-08-27 08:20:21 +02:00
Marc Durdin
e7bc51fcda chore(windows): formatting
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-27 07:53:40 +02:00
Marc Durdin
0f281a6a9d maint(windows): remove koSwitchLanguageForAllApplications, koAutoSwitchOSKPages, osVista, osWin7, osWin8, cleanup
* Remove references to `koSwitchLanguageForAllApplications` and
  `koAutoSwitchOSKPages` options, translated strings for them, and
  related `GlobalKeyboardChangeManager` -- no longer required since
  Win8.
* Remove Windows Vista-, 7-, and 8-specific code paths - except for the
  one user-facing setting for installing keyboards on downlevel
  operating systems.
* Remove commented code

Fixes: #16433
Test-bot: skip
2026-08-27 07:47:25 +02: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
Joshua Horton
39a7652056
change(web): apply MD suggestion from code review
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-08-26 20:47:57 +07: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
Marc Durdin
2c7bba8d10 refactor(windows): cleanup unused wm_keyman_control values
Cleanup of unused `wm_keyman_control` and `wm_keyman_refresh` values,
and some other unused messages, which were making the implementation
harder to understand.

Relates-to: #15333
Follows: #16435
2026-08-26 10:18:00 +02:00
Marc Durdin
0e332b6f6c fix(windows): simplify keyboard refresh and make it more on-demand
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
Clean up the keyboard refresh process. Keyman COM API will post a
`wm_keyman_refresh`, `KR_REQUEST_REFRESH` message when changes have been
made to the list of installed keyboards (or some other keyboard-related
settings change).

Keyman Engine (any arch) will handle this message, in any process, and
post a message to the master controller (keyman.exe, TfrmKeyman7Main),
`wm_keyman_refresh`, `KR_PRE_REFRESH`.

Keyman Engine (keyman32) will handle _this_ message in the master
controller thread context, and increment the global refresh tag. It also
asks the other architecture host process(es) to update their global
refresh counter to the same value (by posting `wm_keyman_refresh`,
`KM_PRE_REFRESH` to those process(es).)

This refresh tag is then compared on-demand in each thread to the
thread's current refresh tag value, when a keyboard activation is
received, on set focus, or on a keystroke, and the keyboard list is
refreshed at that point.

This means that keyboard installation no longer triggers a large amount
of activity reloading all the keyboards on all windowed threads, but
rather they will gradually reload as the user interacts with them. It
also fixes #15333, which related to having threads with only child
windows -- that is, that were parented by top-level windows from other
threads -- which thus never received the global broadcast in the earlier
design. For example, VSCode, Notepad in Win11, Chrome.

Fixes: #15333
2026-08-26 10:15:46 +02:00