Commit graph

33096 commits

Author SHA1 Message Date
Darcy Wong
86b659a1c1 docs(common): Document Keyman website server-side dependencies
Adds a table showing server-side dependencies
2025-04-02 07:30:10 +07:00
Marc Durdin
0f05da957f fix(developer): remove redundant Name and RTL fields from .kps LexicalModel
Follows on from the similar changes to `Keyboard` fields in #13600. This
deprecates the `RTL` and `Name` fields. `RTL` was never used. `Name` was
written but never presented to end users, so effectively irrelevant.
`Name` also was present in `File.Description` (already deprecated) for
the corresponding model.js _and_ `Info.Name`, so doubly redundant.

Also updates the schema documentation to mark the deprecated fields.

Relates-to: #13600
2025-04-02 05:39:09 +07:00
Keyman Server
89742b853c
Merge pull request #13639 from keymanapp/auto/version-beta-18.0.226
auto: increment beta version to 18.0.226
2025-04-01 11:03:56 -07:00
Keyman Build Agent
911c8f082e auto: increment beta version to 18.0.226 2025-04-01 14:03:18 -04:00
Keyman Server
8e8d769d58
Merge pull request #13638 from keymanapp/auto/version-master-19.0.21
auto: increment master version to 19.0.21
2025-04-01 11:01:55 -07:00
Keyman Build Agent
724613cc8f auto: increment master version to 19.0.21 2025-04-01 14:01:24 -04:00
Steven R. Loomis
aea6242d04
Merge branch 'master' into feat/developer/10622-xml-parse-line-numbers-epic-ldml 2025-04-01 11:53:52 -05:00
Eberhard Beilharz
659e844f83
docs(linux): add function headers for some of the engine methods 2025-04-01 16:46:18 +02:00
Eberhard Beilharz
ac6b521583
docs(linux): clarify the newly added return values
Addresses code review comments.
2025-04-01 16:44:29 +02:00
Eberhard Beilharz
9147bdb689
Merge pull request #13624 from keymanapp/refactor/linux/warning
refactor(linux): remove warning if no custom keyboards exist

If the dconf setting for custom keyboards doesn't exist, i.e. we never saved custom keyboards before, the previous code resulted in a warning showing up: `(ibus-engine-keyman:4276): GLib-CRITICAL **: 14:31:16.030: g_hash_table_lookup: assertion 'hash_table != NULL' failed`.

This PR adds a null check before trying to access the custom keyboards hash table and thus removes the warning.
2025-04-01 12:52:59 +02:00
Darcy Wong
afbe3d00cf fix(android): Update the keyboard height
Per review comment
2025-04-01 14:56:25 +07:00
Joshua Horton
0e055b2e67
Merge pull request #13549 from keymanapp/fix/ios/remove-missing-keyboards
fix(ios): uninstalls keyboards upon failure to load
2025-04-01 14:56:17 +07:00
Joshua Horton
bb51b8e288
Merge pull request #13548 from keymanapp/change/ios/atomic-copy-overwrite
change(ios): prevent file erasure during copyWithOverwrite error state
2025-04-01 14:56:09 +07:00
Marc Durdin
690d62ca3f fix(android): Move responsibility for setting keyboard height preference
Cherrypick of #13578 to beta

Moves responsibility for setting keyboard height preference into `applyKeyboardHeight()`
2025-04-01 14:10:55 +07:00
Marc Durdin
1f572a14b7
Merge pull request #13578 from MattGyverLee/fix/kmea/13511/applykeyboardHeight
fix(android): move responsibility for setting keyboard height preference into `applyKeyboardHeight()`
2025-04-01 14:05:32 +07:00
Marc Durdin
7999677cd6
Apply suggestions from code review 2025-04-01 08:48:13 +02:00
Joshua Horton
002b7fc03b docs(ios): tweaks code comment for clarity 2025-04-01 12:53:07 +07:00
Joshua Horton
cd322340df change(web): add unique classname to mobile-device page-trailer element
Addresses, but does not fix, #13588.

This change provides a simple classname to the page-trailer element Keyman Engine for Web adds to pages when in mobile mode.  This "page trailer" was originally added so that the on-screen keyboard does not hide important elements near the bottom of the page when visible.  That said, we have gotten site-designer complaints about it; exposing a way for site-designers to retrieve it in queries and/or customize its properties will provide a reasonable workaround for such cases.
2025-04-01 11:45:46 +07:00
Joshua Horton
2e300fcbba fix(ios): slide dismissal of keyboard-height adjuster did not resize keyboard
Fixes: #13443

Slide-dismissal of the settings menu, and of the keyboard-height setting view in particular, should apply changes after dismissal... not only after backing out via navigation buttons.

Certain aspects of the iOS API didn't make it easy, though.  After some searching, I found that "presentation controllers" and related can be leveraged to ensure we can detect Settings menu dismissal.  With that detection in place, we can use the same method that's been working fine for us when backing out of Settings via button.  This also ensures the keyboard will immediately display after dismissal, too!
2025-04-01 10:58:24 +07:00
Darcy Wong
938bfcea76 chore(mac): Clean up comment 2025-04-01 10:16:25 +07:00
Darcy Wong
bbf249b64c chore(android): Remove whitespace 2025-04-01 10:16:08 +07:00
Joshua Horton
7eb88bed00 fix(ios): prevent re-display of keyboard when re-entering app to its menus
Fixes: #13629
Fixes: #11953
Fixes: #6387

This change makes sure that upon app re-entry, the keyboard only displays when the main view will be the active view.  If the app had been in a menu or in the picker, the keyboard will no longer show up on top of it.  Additionally, if the app is re-entered to directly install a KMP from a file, the keyboard will not overlay the package installer.

The core of the problem is that upon app re-entry, the WebView reloads the keyboard, which in turns triggers the `keyboardLoaded` internal notification.  That notification did not check if the main view was the currently-visible view or not, and would always display the keyboard.
2025-04-01 10:10:38 +07:00
Darcy Wong
14d4b62f2d
Merge pull request #13594 from keymanapp/chore/crowdin/it
chore(mac,windows): Update Crowdin strings for Italian
2025-04-01 10:05:41 +07:00
Joshua Horton
6945a264ff docs(web): improve clarity for the onNewTrackedPath section per review comment 2025-04-01 09:14:30 +07:00
Joshua Horton
63d6df6e00 Merge branch 'docs/web/gesture-modeling-and-processing' into docs/web/gesture-input-serialization 2025-04-01 08:59:25 +07:00
Marc Durdin
6755de11b0
Merge pull request #13622 from keymanapp/fix/developer/13610-handle-und-in-keyboard-info
fix(developer): add special handling for 'und' in kmc-keyboard-info
2025-04-01 08:51:09 +07:00
Joshua Horton
3ed52349d3 docs(web): addresses more review concerns 2025-04-01 08:50:40 +07:00
Joshua Horton
9034e045d6
docs(web): Apply suggestions from code review
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2025-04-01 08:41:27 +07:00
Joshua Horton
4f5b51e921
Merge pull request #13621 from keymanapp/fix/web/remove-extra-last-row-offset
fix(web): remove extra px offset from last OSK row
2025-04-01 08:39:35 +07:00
Marc Durdin
54d6f374d9
chore(android): use constant instead of string 2025-04-01 01:05:51 +02:00
Marc Durdin
8dbca1b651
Merge branch 'master' into fix/kmea/13511/applykeyboardHeight 2025-04-01 06:02:54 +07:00
Steven R. Loomis
29f387bebe Merge remote-tracking branch 'upstream/master' into feat/developer/10622-xml-parse-line-numbers-epic-ldml 2025-03-31 16:16:10 -05:00
Steven R. Loomis
0c290bd37a feat(developer): update for line numbers
- update to metadata branch of fast-xml-parser
- restructure metadata handling
- use type safety for fast-xml-parser options

Fixes: #10622
2025-03-31 16:11:19 -05:00
Keyman Server
227fcfafda
Merge pull request #13627 from keymanapp/auto/version-beta-18.0.225
auto: increment beta version to 18.0.225
2025-03-31 11:03:18 -07:00
Keyman Build Agent
5676c77a34 auto: increment beta version to 18.0.225 2025-03-31 14:02:34 -04:00
Keyman Server
98a00ef424
Merge pull request #13626 from keymanapp/auto/version-master-19.0.20
auto: increment master version to 19.0.20
2025-03-31 11:01:41 -07:00
Keyman Build Agent
7b16d81eaf auto: increment master version to 19.0.20 2025-03-31 14:01:07 -04:00
Matthew Lee
99033cf1ec
Update android/KMEA/app/src/main/java/com/keyman/engine/KMManager.java
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-03-31 12:00:50 -04:00
Eberhard Beilharz
915d30cd95
fix(linux): fix cursor movement
This change fixes a bug introduced in #13372. Before that `engine.c`
determined if keys are handled or not. For keys that we didn't handle
we returned `FALSE`. However, that didn't allow the Core to adjust the
context where necessary, so #13372 moved that to Core. However, this
caused `ibus_keyman_engine_process_key_event` to return `TRUE` even if
we didn't handle the key. Instead we called `ibus_engine_forward_key_event`
with the non-handled key. This worked in most applications, but not
in the Text Editor.

This change now does no longer call `ibus_engine_forward_key_event` for
compliant apps but instead returns `FALSE` from
`ibus_keyman_engine_process_key_event` for unhandled keys, allowing the
app to see and act on the key event.

Fixes: #13590
2025-03-31 17:58:08 +02:00
Matthew Lee
fa65ccb901 Making KMEngine_PrefsKey a constant. 2025-03-31 11:54:40 -04:00
Eberhard Beilharz
4a9a3dc55f
refactor(linux): remove a warning
The previous code resulted in warnings showing up:
`(ibus-engine-keyman:4276): GLib-CRITICAL **: 14:31:16.030: g_hash_table_lookup: assertion 'hash_table != NULL' failed`.
This should work around the warning.
2025-03-31 16:33:31 +02:00
Joshua Horton
581fe688c3 docs(web): adds index link to the new doc 2025-03-31 15:39:53 +07:00
Joshua Horton
72576811d0 Merge branch 'docs/web/gesture-modeling-and-processing' into docs/web/gesture-input-serialization 2025-03-31 15:38:22 +07:00
Joshua Horton
fab49b9135 docs(web): also link the older internal-doc page 2025-03-31 15:31:57 +07:00
Joshua Horton
9fae7e9039 docs(web): central index.md start location 2025-03-31 15:28:34 +07:00
Joshua Horton
00239eaf56 docs(web): revamps the glossary 2025-03-31 14:13:33 +07:00
Darcy Wong
6547458a3c fix(android): Make banner smaller
Following review suggestion for banner not to be more than 1/4 of the main keyboard body.
2025-03-31 13:37:23 +07:00
Marc Durdin
9c1c417457 fix(developer): add special handling for 'und' in kmc-keyboard-info
This is a workaround for missing 'und' language tag.

`(new Intl.Locale('und')).language` returns `undefined` in V8, as of 31
March 2025. This means we cannot rely on `Intl.Locale` to parse the
bcp47 string for us. The implemented workaround is to replace `und` with
a known-good language subtag, and then swap it back out in later
processing.

Also adds unit test and new warning messages for invalid language tags
that were exposed during testing of this.

Fixes: #13610
2025-03-31 12:30:05 +07:00
Joshua Horton
6dbca2a4ae docs(web): gesture-modeling intro breakdown reordering 2025-03-31 12:29:21 +07:00
Joshua Horton
8102f4bb64 docs(web): terms.md -> glossary.md 2025-03-31 10:55:33 +07:00