Commit graph

3486 commits

Author SHA1 Message Date
Marc Durdin
56d18bfab3 fix(windows): change canonicalization strategy for Windows 7
On Windows 7, we will no longer attempt to canonicalize BCP 47 tags in
the same was as on later OS versions, because there appear to be some
significant differences in how they work, for example, zh-CN is not
converted to zh-Hans-CN on Windows 7, whereas it is on Windows 10.

This commit also refreshes the `KLog` unit which is useful for debugging
these types of scenarios.
2021-09-29 11:34:16 +10:00
Marc Durdin
c0ac074618
Merge pull request #5720 from keymanapp/fix/developer/5327-touch-remove-empty-rows
fix(developer): remove empty touch rows on save
2021-09-29 07:38:31 +10:00
Marc Durdin
b69bb30adf chore(windows): fix broken links in help 2021-09-29 07:18:43 +10:00
rc-swag
b71fde66f9
Merge branch 'master' into feat/windows/keyman-core-integration-2 2021-09-27 21:40:22 +10:00
rc-swag
8eeaef9ae5
Merge branch 'feat/windows/keyman-core-integration-2' into feat/windows/preserving-keyboard-options-in-engine 2021-09-27 21:21:56 +10:00
Marc Durdin
a65b55e1b5 fix(web): support variable stores with predictive text
Fixes #2924.

When a keyboard includes variable stores, predictive text fat-fingering
tests will no longer affect the variable store values.
2021-09-27 06:54:24 +10:00
Marc Durdin
d4b9f18106 fix(developer): move ampersand to shift+7 on touch
Fixes #5702.

On the phone layout for two templates, ampersand (`&`) was on Shift+6
instead of on Shift+7.
2021-09-24 14:01:24 +10:00
Marc Durdin
39a4fe75fe fix(windows): escape strings embedded in JS 2021-09-24 13:44:46 +10:00
Darcy Wong
fa0b973aee chore(common): Update strings 2021-09-24 07:02:22 +07:00
Marc Durdin
eee06e18be chore(developer): cleanup links and display attributes 2021-09-23 14:03:39 +10:00
Marc Durdin
896b922865 chore(developer): refactoring - minor 2021-09-23 13:51:54 +10:00
Ross
71f97d46aa feat(windows): add link to mem leak github repo 2021-09-22 16:51:14 +10:00
Ross
1c405c5142 feat(windows): Address review comments 2021-09-22 16:33:30 +10:00
rc-swag
64dbaad371
feat(windows): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-09-22 16:11:36 +10:00
Ross
deb358de5a feat(windows): add memory leak tests - fix memory leaks 2021-09-22 11:28:28 +10:00
Marc Durdin
05cefaf9f8 feat(developer): improve look and feel of test view 2021-09-22 11:02:54 +10:00
Marc Durdin
6b39383743 feat(developer): touch layout testing
Adds support for testing touch layouts without requiring use of device
emulation. Uses new InlinedOSKView.

Does not yet add a view within Keyman Developer; this will come shortly.
2021-09-22 11:02:53 +10:00
Marc Durdin
3eda9dd3a1
Merge pull request #5727 from keymanapp/fix/developer/kmlmc-debug-path
fix(developer): run kmlmc from Keyman source path
2021-09-22 09:44:55 +10:00
Darcy Wong
d089b962af chore(common): Check in crowdin strings for Shuwa Latin 2021-09-21 14:42:58 +07:00
rc-swag
00d4bcded8
feat(windows): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-09-21 11:48:56 +10:00
Darcy Wong
dd15e68a0e
Merge pull request #5681 from keymanapp/chore/common/crowdin-zh
chore(common): Check in crowdin strings for Simplified Chinese
2021-09-21 07:14:42 +07:00
Ross
d450543253 feat(windows): address review comments
Add test fixture to allow Setup and Teardown methods to be used
for all km process action tests.
Modified the DebugAssert macro to not do the early return on its own.
2021-09-21 09:59:17 +10:00
Marc Durdin
6b8d941f9e chore: add KeymanDeveloperPaths to kmcomp project 2021-09-21 06:45:26 +10:00
Marc Durdin
e6190ee05f fix(developer): run kmlmc from Keyman source path
Makes it possible to run the kmlmc.cmd compiler wrapper script from
Keyman Developer while debugging from source.

Adds a new class `TKeymanDeveloperPaths` which is similar to
`TKeymanPaths`, to provide a future single location for all Keyman
Developer path-related functions. There are a number scattered through
the source at present, e.g. in `RedistFiles.pas`, so this is just a
starting point.
2021-09-21 06:25:35 +10:00
Marc Durdin
ffd66e32e1
Merge pull request #5697 from keymanapp/fix/developer/5013-debugger-ralt-not-working
fix(developer): support chiral modifiers in debugger 🐞
2021-09-20 16:12:47 +10:00
Marc Durdin
41a9e8c26d
Merge pull request #5696 from keymanapp/feat/developer/5695-debugger-track-set-option-value
feat(developer): track changes to option values better in debugger 🐞
2021-09-20 16:12:39 +10:00
rc-swag
9305bae3ba
fix(windows): commit review suggestions
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-09-20 11:34:06 +10:00
Marc Durdin
6de2238a25 fix(developer): remove empty touch rows on save
Fixes #5327.
2021-09-20 09:15:09 +10:00
Darcy Wong
8e64b8f7d6 fix(windows): Update language names 2021-09-17 13:47:58 +07:00
Marc Durdin
547ede3a9b fix(developer): add version info to Core
Fixes #5672.

* Adds version information to meson build for Keyman Core DLL
* Removes verify.dpr patch added in #5649 so it will be tested at build
2021-09-17 12:47:01 +10:00
Marc Durdin
6fa5399cda
chore(windows): Apply suggestion
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2021-09-17 10:30:41 +10:00
Marc Durdin
838693d132
Merge pull request #5647 from keymanapp/feat/developer/debugger-keyboard-options
feat(developer): Debugger keyboard options 🐞
2021-09-17 10:11:29 +10:00
Marc Durdin
7295ea9af3
Merge pull request #5640 from keymanapp/feat/developer/debugger-platform-option
feat(developer): Debugger platform option 🐞
2021-09-17 10:10:53 +10:00
Marc Durdin
a8a19b2a2e fix(windows): handle edge cases using default language
Fixes #5091.

If the user has a default language that is not a minimal BCP47 tag, such
as `zh-Hans-CN` vs `zh-CN`, or if the default language does not have a
mapping in our `TLanguageCodeUtils.TranslateWindowsLanguagesToBCP47`
function, then kmshell would crash on install of a keyboard that had no
language metadata specified (i.e. neither legacy metadata in .kmx nor
modern metadata in .kmp).

This crash arose because the elevated instance of kmshell would install
a local-machine reference to `zh-CN` (as it back-translated from a
LangID), but the current user install would look for `zh-Hans-CN`, read
from the Windows registry `HKCU\Control Panel\International\User Profile`.

To further complicate matters, it is possible for the current user to
have a different default language than the elevated user on the machine.
Keyman was assuming that the default language was the same in both
cases.

This fix passes in the current user's default BCP47 and LangID to the
elevated portion of the keyboard install, so we can guarantee that
keyboard install which needs to use the default language, actually
installs for the current user's actual language code, and not a
canonicalized version (or a totally different code in the case of
elevation to an alternate admin user account).
2021-09-17 06:37:23 +10:00
Darcy Wong
349ed55840 chore(common): Update strings
* also includes untranslated strings (fallback to English)
2021-09-16 08:29:29 +07:00
Marc Durdin
72e6188192 fix(developer): support chiral modifiers in debugger
The ralt, rctrl, lalt, lctrl modifiers were not working correctly
in the debugger.

Relates to #5013.
2021-09-15 15:55:42 +10:00
Marc Durdin
cec8d11759 feat(developer): track changes to option values better in debugger
Fixes #5695.

When the debugger is in single-step mode, reflects the value of option
stores at the time of the change rather than at the beginning of the
batch.
2021-09-15 15:29:44 +10:00
Marc Durdin
564a8a019a chore(developer): Merge branch 'feat/developer/debugger-platform-option' into feat/developer/debugger-keyboard-options 2021-09-14 14:18:39 +10:00
Darcy Wong
6bf1ef004a chore(windows): Update strings with hotkeys 2021-09-14 08:07:58 +07:00
Darcy Wong
0a4d94dae7 chore(common): Skip untranslated strings 2021-09-14 07:45:49 +07:00
Darcy Wong
091628aed2 chore(common): Update additional strings 2021-09-14 06:08:13 +07:00
Marc Durdin
a00eb2c91a fix(windows): fallback to filename if &name not set
Fixes #5683.

If `store(&name)` is missing from a keyboard, then fallback to the
filename of the keyboard (sans extension). This fixes a regression in
14.0 keyboard registration.

I opted not to make this change in kmxfile but rather in places which
use it in the Keyman Engine COM API, because I wanted kmxfile to remain
truthful about all details of what it is reading from the file.

Given that the COM API will now never return an empty string for the
name of the keyboard, there are  mitigations for this in Keyman
Configuration which are unnecessary, but it is not harmful for them to
remain there.

Will cherry-pick to stable-14.0.
2021-09-14 08:24:17 +10:00
Marc Durdin
207bf84fd9 fix(developer): iOS platform is touch not hardware 2021-09-14 06:24:37 +10:00
Marc Durdin
4aeb06f98d feat(developer): handle form factor in platform options 2021-09-13 15:51:20 +10:00
Darcy Wong
42197c896b chore(common): Check in crowdin strings for simplified Chinese 2021-09-13 12:16:58 +07:00
Marc Durdin
bab345cb65 chore(developer): Merge branch 'master' into fix/developer/5577-import-from-layout-dirty-flag 2021-09-13 12:27:12 +10:00
Marc Durdin
36c21657e2 fix(developer): ensure file modified after import from layout
Fixes #5577.

This ensures that the touch layout file is marked as modified after
running Import From Layout in Keyman Developer, so that changes are
not lost when you save.
2021-09-10 14:19:47 +10:00
Marc Durdin
986743b05e chore(developer): fixup merge issue 2021-09-10 12:02:16 +10:00
Marc Durdin
8dffc75e00
Merge branch 'feat/developer/debugger-platform-option' into feat/developer/debugger-keyboard-options 2021-09-10 10:48:29 +10:00
Marc Durdin
e1bcf00117 chore(developer): Merge branch 'fix/developer/5648-debugger-include-keyman-core' into feat/developer/debugger-keyboard-options 2021-09-10 10:44:10 +10:00