auto: B19S1 merge master into user-dict 📖 - #16563
Open
keyman-server wants to merge 142 commits into
Open
Conversation
This PR provides two main services: - It allows on-device KMP file providers (such as Chrome downloads or the local Files app) to smoothly pass those KMP files into Keyman for Android for installation. - It also removes wildcard-host http / https deep-links from the app manifest, as these are invalid. Fixes: #14854 Fixes: #10133 Upon my investigation into related documentation, I've determined that with current versions of Android, setting up a general, "anywhere on the web" deep link for KMP files is not supported and should not be attempted. How, then, do we facilitate external apps passing off KMP links or files to Keyman for Android? Turns out... we've already done the work for downloaded files with `file:` and `content:` scheme deep-links. The issue is that some of our permissions-checking code logic was bad. With a little work to correct them - removing the bad checks that never should have existed anyway - the files load nicely! Build-bot: skip release:android
…ent-filters Fixes: #14122
Build-bot: skip build:web Test-bot: skip
…tocompletion Build-bot: skip build:web
Build-bot: skip release:android
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
Co-authored-by: Marc Durdin <marc@durdin.net>
…witchOSKPages`, 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
Co-authored-by: Ross Cruickshank <rc-swag@users.noreply.github.com>
…ierState()` Fixes: #16434 Test-bot: skip
…sion to 19.0 Fixes: #14211 Test-bot: skip
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
…uple-construction' into change/web/narrow-autoselection-comparisons
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
Add support for specifying an output folder instead of filename for the `--out-file` parameter of kmc. This allows for batch builds, which can be much faster than invoking kmc for each file separately. Alongside that, add a `--continue-on-error` parameter that allows for batch builds to continue even if a single file fails to build. (Note that if a fatal error is encountered, kmc aborts with exit code 70).
…ompiler `KeysCompiler` runs before `LayrCompiler` so this verification needs to defer rather than throw. We can assume that the `LayrCompiler` will catch it. Fixes: KEYMAN-DEVELOPER-3XD Fixes: #16454 Test-bot: skip
Per the spec, the `id` attribute is required for touch layers, and `modifiers` attribute is required for hardware layers. There is ambiguity in the spec at present as to whether they should be allowed for the alternative type. * Validate that the attributes are present where required. * Tighten validation of `modifiers` attribute - it cannot be empty or missing for hardware; "" != "none". * Hint if the attribute is present when it probably shouldn't be (to be potentially raised to warning or error after spec clarified). * Fixup all keyboard3 xml files to conform to spec and eliminate hints. * Add unit tests. * Removed threshold warning for coverage as kmc-ldml is already > 90%. Fixes: #12423
Build-bot: skip release:web,android,ios
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com> Co-authored-by: Sabine Schmitt <SabineSIL@users.noreply.github.com>
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
Also reorder the buttons more logically, so Copy Link is next to Test Keyboard, so that the Email Links button which applies to all items in the list is separate from the Test Keyboard and Copy Link buttons. Fixes: #12669 Test-bot: skip
Fixes: #12165 Test-bot: skip
Use `KEYMAN_VERSION` instead of parsing version information. Test-bot: skip
Fixes: #12070 Test-bot: skip
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.
keyman-server
enabled auto-merge
September 12, 2026 05:12
User Test ResultsTest specification and instructions User tests are not required Test Artifacts
|
auto-merge was automatically disabled
September 12, 2026 07:58
Branch protection rule check failed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Test-bot: skip
Build-bot: build