Commit graph

16723 commits

Author SHA1 Message Date
Darcy Wong
aa2efd9fb2
Merge pull request #7676 from keymanapp/chore/android/less-toast-on-stable
chore(android/engine): Don't show Toast errors on stable tier
2022-11-10 15:33:25 +07:00
Eberhard Beilharz
a780cc47f5
Merge pull request #7492 from keymanapp/chore/linux/cherry-pick/changelog
chore(linux): Update debian changelog 🍒
2022-11-10 09:03:40 +01:00
Darcy Wong
85877d213a chore(android/engine): Don't show Toast errors on stable tier 2022-11-10 10:49:14 +07:00
Darcy Wong
b2db618ade
Merge pull request #7669 from keymanapp/chore/history-and-versioning
chore: Update history-and-versioning to match history
2022-11-10 10:03:53 +07:00
Darcy Wong
a396b095e0 chore: Update history-and-versioning to match history 2022-11-10 08:26:59 +07:00
Darcy Wong
336b06b1a7
Merge pull request #7660 from keymanapp/chore/linux/whatsnew
chore(linux): Update whatsnew
2022-11-10 07:35:51 +07:00
Darcy Wong
77d43c08aa
Update linux/help/about/whatsnew.md
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2022-11-10 07:35:42 +07:00
Keyman Server
b77060ef60
Merge pull request #7666 from keymanapp/auto/version-beta-16.0.100
auto: increment beta version to 16.0.100
2022-11-10 05:03:56 +11:00
Keyman Build Agent
442c028694 auto: increment beta version to 16.0.100 2022-11-09 13:03:09 -05:00
Eberhard Beilharz
38557ccb89
chore(linux): Update debian changelog
(cherry picked from commit 3b3d4e9e7e)
2022-11-09 18:32:49 +01:00
Marc Durdin
3dbd11939f
Merge pull request #7650 from keymanapp/fix/core/7649-emit-keystroke-writing-action-to-wrong-queue
fix(core): emit keystroke was writing to wrong queue
2022-11-09 20:24:26 +11:00
Marc Durdin
c6d272d537
Merge pull request #7644 from keymanapp/fix/core/7643-save-opt-writing-action-to-wrong-queue
fix(core): `save()` should be on internal kmx action queue
2022-11-09 20:22:17 +11:00
Marc Durdin
d1ab61eac1
Merge pull request #7659 from keymanapp/fix/developer/7658-handle-unpaired-surrogate-in-token-command
fix(developer): handle unpaired surrogate
2022-11-09 16:46:21 +11:00
Marc Durdin
8725deb0d6
Merge pull request #7657 from keymanapp/fix/developer/7656-handle-missing-engine-in-crash-handler
fix(developer): handle crash reports without Keyman Engine installed
2022-11-09 16:46:13 +11:00
Marc Durdin
6ebba9deb1
Merge pull request #7655 from keymanapp/fix/developer/4757-6928-handle-shutdown-on-update-better
fix(developer): handle shutdown cleanup more cleanly
2022-11-09 16:46:04 +11:00
Marc Durdin
8003bf60bd
Merge pull request #7654 from keymanapp/fix/developer/6928-state-change-for-touch-layout
fix(developer): handle edge cases for app sources
2022-11-09 16:45:57 +11:00
Darcy Wong
8b93717206 chore(linux): tweak line about reordering 2022-11-09 09:13:54 +07:00
Darcy Wong
37248899f6 chore(linux): Update whatsnew 2022-11-09 08:55:34 +07:00
Darcy Wong
7fe850c603
Merge pull request #7652 from keymanapp/fix/web/polyfill-find-index
fix(web): Add polyfill for Array.findIndex()
2022-11-09 07:18:36 +07:00
Darcy Wong
7d265b5f42
Merge pull request #7646 from keymanapp/fix/web/polyfill-includes
fix(web): Add polyfill for Array.includes()
2022-11-09 07:18:19 +07:00
Marc Durdin
5d41e7a36e fix(developer): handle unpaired surrogate
Fixes #7658.

When manipulating text that contains an unpaired surrogate, the text
editor could throw an exception trying to encode the text to send
through to the token command. This simply masks that error.
2022-11-09 09:43:55 +11:00
Marc Durdin
ec1af3de97 fix(developer): handle crash reports without Keyman Engine installed
Fixes #7656.

If Keyman Developer is installed, but not Keyman for Windows, then
tsysinfo.exe is not present. If a crash occurs, this causes a secondary
crash when trying to display the error handler dialog. In this
situation, we now just show a dialog box with a short message rather
than the more friendly dialog available via tsysinfo.exe.

We could consider adding tsysinfo.exe into Keyman Developer for a future
release.
2022-11-09 08:46:30 +11:00
Marc Durdin
03ae8582db fix(developer): handle shutdown cleanup more cleanly
Fixes #4757.
Fixes #6928.

Three separate ways shutdown is more robust:

1. Destroy main form before web server -- this ensures that all main
   form routines have deregistered app sources from web server.
2. In some situations, `FormClose` can be skipped by shutdown routines,
   for example, if you call `Application.Terminate`. This change ensures
   that we get a second chance to cleanup in the form destructor with
   `DoCloseCleanup`.
3. In the Online Update Check, instead of `Application.Terminate`, we
   now use `Application.MainForm.Close`, which is much more polite, as
   it ensures that changed files are saved, etc, and does proper
   cleanup. This particular change may make the other two somewhat
   irrelevant but they are still sensible as they will cover us for
   other potential form destruction sequences.
2022-11-09 08:18:41 +11:00
Marc Durdin
d2fe2a61f9 fix(developer): patch from previous commit 2022-11-09 07:36:28 +11:00
Marc Durdin
b76eb41a06 fix(developer): handle edge cases for app sources
Relates to #6928 and KEYMAN-DEVELOPER-74.

Fixes one more potential pathway for assertions being raised, and adds
some extra debugging in case there are additional pathways we are not
capturing.
2022-11-09 07:32:05 +11:00
Keyman Server
a4912d4f00
Merge pull request #7653 from keymanapp/auto/version-beta-16.0.99
auto: increment beta version to 16.0.99
2022-11-09 05:30:09 +11:00
Keyman Build Agent
a1e82900bb auto: increment beta version to 16.0.99 2022-11-08 13:29:23 -05:00
Marc Durdin
d7fbdfc59a
Merge pull request #7617 from keymanapp/fix/developer/7616-inferred-key-text-stability
fix(developer): improve support for inferred key cap text
2022-11-09 05:14:44 +11:00
Marc Durdin
3113d613e0
Merge pull request #7638 from keymanapp/fix/web/7636-system-keyboard-modifier-keys
fix(web): avoid reset for touch system keyboard
2022-11-09 05:10:59 +11:00
Marc Durdin
42cc91b58f
Merge pull request #7651 from keymanapp/fix/developer/kmlmc-has-runtime-dep-on-keyman-version
fix(developer): kmlmc has runtime dependency on keyman-version
2022-11-09 04:55:13 +11:00
Darcy Wong
9baa77c015 fix(web): Add polyfill for Array.findIndex 2022-11-08 14:39:15 +07:00
Marc Durdin
5eb006864b fix(developer): kmlmc has runtime dependency on keyman-version 2022-11-08 16:53:10 +11:00
Marc Durdin
d21827ca8f
Merge pull request #7648 from keymanapp/fix/web/7647-handle-undefined-keyid
fix(web): Handle undefined keyId in multi-tap
2022-11-08 16:46:33 +11:00
Marc Durdin
42a9f2ca72 fix(core): emit keystroke was writing to wrong queue
Fixes #7649.

emit_keystroke code path in kmx processor was writing directly to the
core queue instead of to the internal kmx processor queue. This caused
it to be out-of-order in the actions sent to the engine/debugger.

Engines didn't really care but it broke the debugger, for example if
only a deadkey was in the buffer and backspace was pressed, Developer
would assert as it would get unexpected context for the deletions.
2022-11-08 16:31:30 +11:00
Marc Durdin
08ef07750d fix(web): Handle undefined keyId in multi-tap
Fixes #7647.
2022-11-08 14:44:54 +11:00
Marc Durdin
cbc63c42b2
Merge pull request #7642 from keymanapp/fix/developer/7641-prevent-compile-if-no-project
fix(developer): disable Keyboard|Compile if no project loaded
2022-11-08 14:42:19 +11:00
Marc Durdin
9ddf3ddfc5
Merge pull request #7640 from keymanapp/fix/developer/7639-prevent-exception-in-char-map-on-focus
fix(developer): prevent exception in charmap when unable to focus
2022-11-08 14:41:54 +11:00
Marc Durdin
094050ec90
Merge pull request #7635 from keymanapp/fix/developer/7634-handle-encoding-error
fix(developer): handle EEncodingError loading text file
2022-11-08 14:41:35 +11:00
Marc Durdin
460b933a31
Merge pull request #7633 from keymanapp/chore/developer/tidy-up-hints
chore(developer): tidy up compile hints
2022-11-08 14:41:27 +11:00
Marc Durdin
7755e000a8
Merge pull request #7626 from keymanapp/fix/developer/7625-update-monaco-editor-to-0.15.6
fix(developer): update monaco editor to 0.15.6
2022-11-08 14:40:58 +11:00
Marc Durdin
d41c5c5bdb
Merge pull request #7624 from keymanapp/fix/developer/7622-swap-device-type-stability-in-debugger
fix(developer): set keyman.osk immediately after switching device type
2022-11-08 14:40:15 +11:00
Darcy Wong
0c27935add
Merge pull request #7620 from keymanapp/fix/android/recover-failed-kmp-install
fix(android/engine): Check temporary kmp file is valid
2022-11-08 09:43:00 +07:00
Darcy Wong
e27b70d5a0 fix(web): Add polyfill for Array.includes() 2022-11-08 09:26:45 +07:00
Marc Durdin
8e5c26bc2a fix(core): m_actions already existed in KMX_Options 2022-11-07 10:50:14 +11:00
Marc Durdin
a8c3854431 fix(core): save() should be on internal kmx action queue
Fixes #7643.

The kmn statement `save()` action was being written directly to the
state queue, bypassing the internal kmx action queue. This caused two
issues:

1. save() actions were out-of-order with other actions on the same key
   event.
2. The number of items in the internal action queue became out of sync
   with the debug item queue, which would cause the debugger to fail
   with an assertion.

The new test in debug_api.cpp validates this second issue as the number
of items in the action queue now matches the expected count in the
corresponding debug item.
2022-11-07 10:28:58 +11:00
Marc Durdin
7539c41b27 fix(developer): disable Keyboard|Compile if no project loaded
Fixes #7641.

If you close the active project and have the Welcome window visible, it
was possible for the Compile action to still be enabled, even though
there was nothing to compile.
2022-11-07 09:01:37 +11:00
Marc Durdin
b8f5ebd40a fix(developer): prevent exception in charmap when unable to focus
It appears that components within a docking form are unable to be
focused in some, rare contexts. We don't want to crash, and the end
result of not focusing  is not really all that tragic, so let's just
mask the exception.
2022-11-07 08:49:11 +11:00
Marc Durdin
b62bc0d197 fix(developer): only update charmap for hint when focused
Ensure that the character map is only updated for hint text when
actually editing the hint text.

Fixes KEYMAN-DEVELOPER-S8.
2022-11-07 07:20:09 +11:00
Marc Durdin
88e5bb8cdd fix(web): doModifierPress was testing against wrong device
The doModifierPress function was testing against the 'actual' device
rather than the virtual device, which meant that in the web debugger on
a desktop, testing a touch device, it was effectively testing against
the desktop device data rather than the simulated touch device data.

I did not observe any significant differences in behaviour between the
two modes. So I am not 100% confident that this change is necessary. But
it is a little concerning that there was a mismatch here.
2022-11-07 07:01:50 +11:00
Marc Durdin
7255f1c7f7 fix(web): avoid reset for touch system keyboard
When using the touch 'system' keyboard, the modifier keys are reset by
the kbdMismatch logic introduced in #7543. This is evident in the web
debugger of Keyman Developer, where the system keyboard is easily
accessible.

This maintains the fix from #7543, but removes the `resetContext()`
side-effect.
2022-11-07 06:43:39 +11:00