Commit graph

2074 commits

Author SHA1 Message Date
Marc Durdin
2df14077de
Merge pull request #4901 from keymanapp/fix/windows/cherry/4889-crash-when-installing-tip
fix(windows): crash when installing TIP in some rare situations 🍒
2021-04-21 10:21:41 +10:00
Marc Durdin
f7452aad50
Merge pull request #4888 from keymanapp/fix/windows/cherry/4886-install-crashes-on-invalid-and-legacy-package-names
fix(windows): handle invalid package names during install 🍒
2021-04-21 10:21:16 +10:00
Darcy Wong
8bcb2656cf
Merge pull request #4904 from keymanapp/cherrypick/common/4829-crowdin-indonesian
chore(android,windows): Check in crowdin for Indonesian 🍒
2021-04-19 15:23:58 +07:00
Darcy Wong
f31115cb79
Merge pull request #4903 from keymanapp/cherrypick/common/4895-update-crowdin-fr
chore(common): Update crowdin for French 🍒
2021-04-19 15:23:37 +07:00
Darcy Wong
cecf7ab9ab chore(android,windows): Check in crowdin for Indonesian 2021-04-19 15:11:44 +07:00
Darcy Wong
19760f99fe chore(common): Update crowdin for French 2021-04-19 13:57:47 +07:00
Marc Durdin
b14e2f5d7e fix(windows): crash when installing TIP in some rare situations
May fix #4889.

In some situations, Keyman is unable to precisely match the user's
default language with its own keyboard settings. In this situation,
Keyman may crash when attempting to install the TIP, or may give a
spurious error such as "Too many transient languages" or similar.

I have been unable to reproduce the crash described in #4889 on my
machines so this is an attempted fix.

This does fix a bug with default languages in any case so is a good fix
to include: if the user's default language is not found in Keyman's LCID
table, then Keyman would fail to install the TIP when the keyboard is
installed and would return an error message (but not crash).
2021-04-19 15:59:59 +10:00
Darcy Wong
4d5fef69f7 fix(developer): Reduce non-canonical BCP 47 tag warning in PackageInfo to "Info" 2021-04-19 07:53:22 +07:00
Marc Durdin
7cac8a70a7 fix(windows): handle invalid package names during install
Fixes #4886.

This patch includes 5 separate fixes for the various scenarios we
encountered during package installation.

1. RunTools.pas: don't attempt to install TIPs if package is not also
   being installed.

2. Keyman.Setup.System.OnlineResourceCheck.pas, OnlineUpdateCheck.pas:
   handle online update check for packages with spaces or periods in the
   id (legacy packages only).

3. Keyman.Setup.System.InstallInfo.pas: Handle browsers renaming
   downloaded files with `(n)` and `[n]` patterns as well as the current
   ` (n)` pattern.

4. Keyman.Setup.System.InstallInfo.pas: Handle browsers renaming
   downloaded files with `_n` pattern. See code comments for details.

5. Keyman.Configuration.System.TIPMaintenance.pas: Avoid crashing if
   `kmshell -install-tips-for-packages` is passed an invalid package
   name.

The crash is actually fixed in point 5 above, but the root causes are
addressed in the other points.
2021-04-19 08:31:49 +10:00
Darcy Wong
1011de5c8b
Merge pull request #4822 from keymanapp/chore/windows/crowdin-ff
chore(common): Check in crowdin strings for Fulah
2021-04-01 08:50:35 +07:00
Marc Durdin
08235c869e
Merge pull request #4832 from keymanapp/fix/developer/4830-range-expansions-buffer-size-cherry
fix(developer): buffer size for range expansions 🍒
2021-04-01 12:49:54 +11:00
Marc Durdin
08dcbcd2cc
Merge pull request #4815 from keymanapp/fix/developer/4810-requote-font-names-cherry
fix(developer): requote font names 🍒
2021-04-01 10:12:16 +11:00
Marc Durdin
14198c7a81 fix(developer): buffer size for range expansions
Fixes #4830.

There remain some additional buffer size checks we should be doing in
`GetXString` but this will address the current issue by using the
standard maximum buffer size.
2021-03-31 19:12:33 +11:00
Darcy Wong
a5a0a619a4 chore(windows): Fix parameter number 2021-03-30 13:45:48 +07:00
Darcy Wong
b265322e8c chore(windows): Check in crowdin strings for Fulah 2021-03-30 10:08:17 +07:00
Marc Durdin
573273a86a fix(developer): requote font names
Fixes #4810.
2021-03-29 20:53:56 +11:00
Marc Durdin
d6c69676e7 fix(developer): open containing folder was not opening correct folder
Fixes #4773.
2021-03-25 06:45:04 +11:00
Marc Durdin
2563189bfa fix(windows): Change TLangSwitchRefreshWatcher ownership
Fixes #4751.
Fixes KEYMAN-WINDOWS-76.
Fixes KEYMAN-WINDOWS-79.
Fixes KEYMAN-WINDOWS-7B.
Fixes KEYMAN-WINDOWS-7E.
Fixes KEYMAN-WINDOWS-7F.
Fixes KEYMAN-WINDOWS-7K.
Fixes KEYMAN-WINDOWS-7N.
Fixes KEYMAN-WINDOWS-80.

This resolves an issue where the TLangSwitchRefreshWatcher thread would
terminate early on Win7 (as it had no work to do), and free itself, but
then the main form would reference it post-free. Responsibility for free
has been moved to the main form.

This would result in various exceptions as state is corrupted at this
point.
2021-03-23 08:57:24 +11:00
Marc Durdin
bec6be0329
Merge pull request #4726 from keymanapp/fix/windows/4724-avoid-double-start-during-setup
fix(windows): Avoid double start during setup
2021-03-19 20:57:58 +11:00
Marc Durdin
4e518f660d fix(windows): backup start with windows value during setup
The value is not restored for upgrades unless we back it up, because
Setup does not change these settings if they are not present :)
2021-03-19 14:40:16 +11:00
Marc Durdin
1f3d71611f fix(windows): ensure profiles are reinstalled during setup
Fixes #4725.
2021-03-19 14:26:36 +11:00
Marc Durdin
b97fc4c82c fix(windows): Avoid double start during setup
Fixes #4724.
2021-03-19 14:24:55 +11:00
Marc Durdin
7b032aff26
Merge pull request #4717 from keymanapp/chore/windows/finalize-help
chore(windows): finalize help
2021-03-18 18:50:50 +11:00
Marc Durdin
7c67ffd93c chore(windows): finalize help 2021-03-18 16:39:24 +11:00
Marc Durdin
96939521b1 fix(windows): Download keyboard dialog TLS protocol support
Fixes #4709.
2021-03-18 14:24:44 +11:00
Marc Durdin
5eb0aec0e8
Merge pull request #4691 from keymanapp/fix/developer/named-code-constants-end-of-line-test
fix(developer): support named character codes at end of line
2021-03-16 23:26:03 +11:00
Marc Durdin
9ae541940a
Merge pull request #4699 from keymanapp/fix/developer/validate-keyboard_info-bcp47-canonicalisation-info
chore(developer): upgrade bcp 47 canonicalisation to warning
2021-03-16 23:25:28 +11:00
Marc Durdin
de74fddbc2 chore(developer): upgrade bcp 47 canonicalisation to warning
This does not trigger a build failure; validation warnings currently always pass.
Info messages are currently suppressed with -s which also suppresses the banner,
which is more plumbing than we should change just now.
2021-03-16 20:07:27 +11:00
Marc Durdin
aa8538a8d9
Merge pull request #4689 from keymanapp/fix/developer/validate-keyboard_info-bcp47-canonicalisation-info
fix(developer): validate keyboard_info should give info on non-canonical bcp47
2021-03-16 19:32:36 +11:00
Marc Durdin
5ec0dbff3b
Merge pull request #4690 from keymanapp/fix/developer/mnemoniclayout-and-casedkeys-not-compatible
fix(developer): &CasedKeys and &MnemonicLayout are not compatible together
2021-03-16 17:19:47 +11:00
Marc Durdin
eeeda6195b
Merge pull request #4681 from keymanapp/fix/windows/4520-setup-start-keyman-only-if-not-running
fix(windows): start Keyman after setup only if not running
2021-03-16 17:17:38 +11:00
Marc Durdin
a01000ba4b chore(developer): update tests 2021-03-16 16:56:43 +11:00
Marc Durdin
12184f1857 fix(developer): support named character codes at end of line
If a named character code was followed by a `\n`, it would not be
recognised.
2021-03-16 13:49:55 +11:00
Marc Durdin
4f958985a0 fix(developer): &CasedKeys and &MnemonicLayout are not compatible together
The test for `&mnemoniclayout` was incorrectly failing to check the
actual state of `&casedkeys`, which broke all mnemonic layouts.
2021-03-16 13:46:34 +11:00
Marc Durdin
4c82c2b545 fix(developer): validate keyboard_info should give info on non-canonical bcp47 2021-03-16 13:44:23 +11:00
Marc Durdin
aebfdecf7a chore(windows): breadcrumbs
Some of our Sentry reports are difficult to track down. Adding user
interaction breadcrumbs to Keyman Configuration (to start with) may
simplify this. I may add more breadcrumbs to other projects now that
this is available.
2021-03-16 06:57:57 +11:00
Marc Durdin
bd4f5b5c67 fix(windows): start Keyman after setup only if not running
Fixes #4520.

Start Keyman after Setup finishes only if Keyman is not already running.

The pattern in this code change is found in a few places. It would be
nice to centralise that in a unit somewhere but I don't want to do
that much refactoring at this point in beta.
2021-03-16 05:32:34 +11:00
Marc Durdin
49f4514b1a
Merge pull request #4663 from keymanapp/fix/windows/4447-trigger-language-sync
fix(windows): Trigger language sync after changes
2021-03-16 05:20:29 +11:00
Marc Durdin
d455967393
Merge pull request #4665 from keymanapp/chore/windows/whatsnew-im-visibility
chore(windows): Update whatsnew.md
2021-03-15 20:25:48 +11:00
Darcy Wong
718279b574 chore(common): Update crowdin for km 2021-03-15 13:11:17 +07:00
Marc Durdin
7c7850631c
Update whatsnew.md 2021-03-15 14:14:19 +11:00
Marc Durdin
075062b320
Merge pull request #4649 from keymanapp/fix/windows/4467-setup-restart-save-install-state
fix(windows): setup must save install state for restarts
2021-03-15 14:12:19 +11:00
Marc Durdin
8acee6ac00
Merge pull request #4661 from keymanapp/fix/windows/4554-online-update-focus
fix(windows): keep online update in focus
2021-03-15 14:11:58 +11:00
Marc Durdin
ed6391996f
Merge pull request #4658 from keymanapp/chore/windows/fully-disable-autostart-task
chore(windows): fully disable auto start task
2021-03-15 14:11:33 +11:00
Marc Durdin
53df62f0b7 chore(windows): 17763 sdk version for kmrefresh 2021-03-15 10:42:21 +11:00
Marc Durdin
38f1d602ad chore(windows): change flag default 2021-03-15 10:40:25 +11:00
Marc Durdin
1c4e956a20 chore(windows): fixup engine makefile 2021-03-15 10:18:05 +11:00
Marc Durdin
6155b544ea fix(windows): Trigger language sync after changes
Fixes #4447.
Fixes #4222.

The symptoms for these two issues are related: the language associations
change and keyboards stop functioning correctly. The issue is described
in detail in #4447.

Although this fix should be considered 'experimental', we should
probably include it in the release of 14.0, because it fixes a
longstanding issue with Keyman and Windows languages.
2021-03-15 09:43:07 +11:00
Marc Durdin
10c0ae8388 fix(windows): keep online update in focus
Fixes #4554.

The Online Update form did not have the correct owner window for some
operations, meaning that the elevation dialog would not get foreground.
2021-03-13 06:30:46 +11:00
Marc Durdin
aae0cb19c4 chore(windows): fully disable auto start task
If the registry setting `HKCU\Software\Keyman
Engine\Debug:Flag_UseAutoStartTask[REG_WORD]` is not `0`, then the this
will enable the restart task. Otherwise, all aspects of it are disabled.

For Keyman 14.0 initial release, we will have this flag disabled. If we
can improve stability of it, we'll consider turning it on.
2021-03-12 16:45:30 +11:00