Commit graph

44 commits

Author SHA1 Message Date
Marc Durdin
227e023cdd fix(windows): disable mitigation for Windows 10 build 19597 and later
Fixes #1285.

If running Windows 10 19597 or later, the underlying issue has
been addressed, so disable the mitigation for new installs of
the keyboard. Does not attempt to change the language code if
the keyboard is already installed.
2020-12-21 08:56:34 +11:00
Marc Durdin
e9723251fb fix(windows/engine): Build 19597 update
Build 19597 of Windows 10 no longer causes the issue with Amharic,
Tigrinya and Sinhala keyboards failing to register and activate
correctly.
2020-12-21 08:23:51 +11:00
Marc Durdin
e83061ef80 fix(windows): ensure mitigation works with new registration strategy
The keyboard profile and registration strategy was not taking into
account the mitigation for Win10 1803 (#1285) and this meant that the
Amharic, Tigrigna and Sinhala keyboards would not install correctly.
2020-12-21 08:20:28 +11:00
Marc Durdin
246cb70840 fix(windows): Warn if we reach maximum transient languages
Fixes #3749.
Fixes #3759.

Adds a warning dialog when user attempts to add a transient language to
a keyboard but the maximum number of transient languages is already
installed.

If this issue arises when a user is installing a keyboard for the first
time, Keyman instead installs the keyboard for the user's default
language. This may be a little confusing, but the error condition is
difficult to explain and non-technical users will probably be stuck
and need to install under their default language in any case. Happy to
receive any pushback on this decision.
2020-12-16 09:09:19 +11:00
Marc Durdin
bbfe5adcc8 fix(windows): crash with package online update
Fixes #4005.

The wrong object was being freed which caused an access violation
internally.
2020-12-01 10:15:05 +11:00
Marc Durdin
5a4287a68d fix(windows): disabling/enabling a profile could have wrong association
Transient language profiles would get the wrong language association
when they were disabled and re-enabled.

Fixes #3798.
2020-10-30 14:20:00 +11:00
Marc Durdin
827ea6c386 fix(windows): upgrading disabled keyboards
Fixes #3561.

Resolves issues with upgrading disabled keyboards, and fixes a secondary
issue where Windows was giving us invalid LANGIDs for locales, which was
causing trouble with transient LANGIDs.
2020-09-29 20:25:10 +10:00
Marc Durdin
301a76c88a fix(windows): upgrading transitional profiles
Relates to #3561.

If a keyboard is installed for a transitional profile but another
keyboard is already installed for that profile, then Keyman would
crash, expecting the transitional profile to be missing.
2020-09-29 09:08:47 +10:00
Marc Durdin
ffc0b21a46 chore(windows): cleanup comments 2020-09-23 17:47:08 +10:00
Marc Durdin
8fc7421391 fix(windows): add back support for disabling keyboards
Fixes #3560. This reworks the functionality for disabling
keyboards to work with the new TIP registration pattern. Much
of the code is the same as in Keyman 13, but there are some
significant differences, so it all needs to be reviewed.
2020-09-23 17:37:08 +10:00
Marc Durdin
9f2d99b5c7
Merge pull request #3552 from keymanapp/fix/windows/upgrade-profile-scenarios
fix(windows): upgrade of profiles from 13.0
2020-09-04 11:33:23 +10:00
Marc Durdin
2df50c07ba
Merge pull request #3545 from keymanapp/fix/windows/3485-canonicalization
fix(windows): BCP 47 tag canonicalization
2020-09-04 11:33:09 +10:00
Marc Durdin
3d65466cff
Merge pull request #3543 from keymanapp/fix/windows/simplify-profile-uninstall
fix(windows): simplify profile uninstall
2020-09-02 16:53:19 +10:00
Marc Durdin
edfabc5447
Merge pull request #3542 from keymanapp/feat/windows/map-installed-bcp47
feat(windows): map installed bcp47
2020-09-02 16:53:09 +10:00
Marc Durdin
69227beb2a fix(windows): upgrade of profiles from 13.0
This upgrades a 11.0-13.0 install to the 14.0 model for registered TIPs.
It does not yet deal with transient TIPs or disabled keyboards (these
will come in a separate PR). There is also more tidy up coming in a
future PR for language names.
2020-09-02 16:46:58 +10:00
Marc Durdin
6d5ccbd719 fix(windows): add tests and improve canonical options 2020-09-01 09:41:33 +10:00
Marc Durdin
84f0219541 fix(windows): canonicalization
Reworks the BCP 47 tag canonicalization algorithm.
2020-09-01 08:42:56 +10:00
Marc Durdin
b3f5f586cb fix(windows): simplify profile uninstall 2020-08-31 16:32:53 +10:00
Marc Durdin
b1b3f62b18 feat(windows): map installed bcp47
This PR handles the case where Windows installs a BCP 47 tag that may not
match our tag 100% precisely. In this case, Keyman maps the Windows BCP 47
tag to the in-memory data for consistency. It also allows for install of
more complex tags.
2020-08-31 14:11:25 +10:00
Marc Durdin
6c1d93e399 chore: address review comments 2020-08-28 15:37:44 +10:00
Keyman Server
97a16e8535 feat(windows): profile installation - engine 2020-08-26 11:06:10 +10:00
Marc Durdin
a0c0141092 feat: more work towards bootstrap 2020-07-03 13:42:12 +10:00
Marc Durdin
9779792059 fix(windows): remove errlogpath and cleanup 2020-03-27 11:23:51 +11:00
Marc Durdin
a2596b49d9 [Windows] Fixes #1285. Adds a mitigation for issues with installation under certain languages in Windows 10 1803 and later 2018-11-02 09:43:38 +11:00
Marc Durdin
c5e553782e Fixes #975. Fixes #996. Installation of keyboards in Windows avoids some side effects with refresh and additional system keyboards. 2018-06-18 16:08:35 +07:00
Marc Durdin
ae22b52ec5
Merge pull request #964 from keymanapp/windows-strip-script-subtag-on-windows-7-keyboard-install-919
[Windows] Strip script subtag on Windows 7 before installing keyboard as script subtag not supported.
2018-06-08 10:34:02 +07:00
Marc Durdin
55aa150d20 Fixes #919 (again). Strip script subtag on Windows 7 before installing keyboard as script subtag not supported. 2018-06-08 10:16:33 +07:00
Marc Durdin
112c517823 Fix merge conflict 2018-06-06 15:53:47 +07:00
Marc Durdin
dc76e53067 Fixes #888. Untitled keyboards will now show the filename of the keyboard in Keyman UI 2018-06-06 10:45:58 +07:00
Marc Durdin
67333c95f6 Fixes #919. Keyboards with custom BCP 47 language tags will now install on Windows 7 with a fallback language. 2018-06-05 16:30:40 +07:00
Marc Durdin
1b9f64f811 Avoid issues when invalid tags are given 2018-05-25 08:15:03 +07:00
Marc Durdin
f6b2977aac Fixes #886. Fixes #887. BCP 47 tags will now be canonicalized and scripts applied where possible and needed, automatically, during keyboard installation 2018-05-24 16:04:33 +07:00
Marc Durdin
eb8a52dbf8 Fixes #515, IKeymanKeyboardFile.DefaultHotkey not implemented 2018-05-08 13:27:13 +07:00
Marc Durdin
ac2b6ed87e Add test cases and complete code paths for keyboard language info in COM API 2018-02-21 23:28:58 +07:00
Marc Durdin
26980fd5c3 Refactor kpinstallkeyboard slightly for language information passing 2018-02-21 14:30:08 +07:00
Marc Durdin
da3056c25f Basic support for reading language information from package data 2018-02-21 14:14:14 +07:00
Marc Durdin
3ff4a989b9 When installing a package, use BCP47 tag from package metadata in preference to kmx data 2018-02-18 16:57:38 +07:00
Marc Durdin
208e6e29cf Rewrote BCP 47 todo notes for upcoming work 2018-02-16 13:26:56 +07:00
Marc Durdin
324335771e Refactor kmxfile constants into kmxfileconsts to avoid pulling in too many dependencies 2018-02-15 16:18:51 +07:00
Marc Durdin
9b026c423e x64 support for COM API - first steps: build of kmcomapi.dll for x64, and rename of registry keys 2017-12-24 13:47:56 +07:00
Marc Durdin
be2c43871d Package Editor support for keyboards 2017-12-07 14:14:33 +07:00
Marc Durdin
a4acb142b9 Fixup build errors 2017-12-04 22:12:13 +07:00
Marc Durdin
2d1009a21e Add standards data - lcid to bcp47 2017-12-02 06:42:47 +07:00
Marc Durdin
b65b982584 Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121)
* Keyman for Windows 10.0 Open Source

* Squashed 'windows/src/ext/jedi/jedi/' content from commit f444ad2

git-subtree-dir: windows/src/ext/jedi/jedi
git-subtree-split: f444ad2da4693851e523f1ea6bd541f701904c24

* Squashed 'windows/src/ext/jedi/jcl/' content from commit d63d3c9fd

git-subtree-dir: windows/src/ext/jedi/jcl
git-subtree-split: d63d3c9fd9ff84efdd8159084ec6a60313644243

* Squashed 'windows/src/ext/jedi/jvcl/' content from commit bee19f3b4

git-subtree-dir: windows/src/ext/jedi/jvcl
git-subtree-split: bee19f3b46909fde2fa92c06cd2706f41d99f6c3

* Add required .res files

* Add required .res files

* Add docbook files (forced)

* Add required libxslt

* Add required jedi files

* Add installation files

* Tweak .gitignore for open

* CI

* Remove KMW from Developer source (#122)

* Remove KMW from Developer source (copies during build)

* Remove KMW from Developer source (copies during build)

* Remove KMW from Developer source (copies during build)

* Fixup release build and copy license, readme from kmw during build

* Remove obsolete build help documentation

* Keyman Engine 10 on Windows regression for shift states (#129)

* Improve #128 -- cleaner debug messages

* Fixes #127, shift state now resets correctly; and more work for #128

* Fixes #130 (#131)
2017-07-25 10:53:06 +07:00