Commit graph

3001 commits

Author SHA1 Message Date
Ross
bb6f1a9974 fix(windows): Improve disable keyboard appearance
The Keyboard layouts tab: When a keyboard is disabled
Just the details text on the right is 'greyed' out. The buttons
on the left our no longer greyed out except for 'Add/remove'
which is now disabled.
2022-12-13 20:37:50 +10:00
Marc Durdin
a81798478e
Merge pull request #7836 from keymanapp/fix/windows/symbol-filenames
fix(windows): lower case filenames for projects
2022-11-29 16:42:48 +11:00
Marc Durdin
529278c045 fix(windows): lower case filenames for projects
Fixes #7828.

Moves all projects to lower case filenames so that we don't end up with
filename conflicts in symbol servers.
2022-11-28 19:28:14 +07:00
Marc Durdin
a9a66f28ed fix(windows): Cleanup CEF more correctly in shutdown
Hopefully fixes KEYMAN-WINDOWS-1MR, and probably many related crash
reports. Will monitor on alpha before porting to stable/beta.

This changes the form destruction sequence to make sure that it
doesn't close the form until CEF has been shutdown correctly.
2022-11-27 07:39:34 +07:00
Darcy Wong
2001f98d86
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-11-23 07:39:24 +07:00
Darcy Wong
c584f0cb45 chore(common): Add notes about bugfixes 2022-11-22 10:50:21 +07:00
Darcy Wong
f98b342fee chore(common): Update whatsnew for 16.0 2022-11-22 10:30:44 +07:00
Marc Durdin
92770fb68b
Merge branch 'beta' into fix/windows/options-buttons-in-list 2022-11-22 06:14:15 +11:00
Marc Durdin
e378feac81 chore(windows): Merge branch 'beta' into fix/windows/7750-arrow-keys-in-options 2022-11-22 06:11:27 +11:00
Marc Durdin
afce1d44bd
Merge pull request #7760 from keymanapp/chore/windows/7759-remove-unused-option-strings
chore(windows): remove unused options from locales and UI
2022-11-21 13:18:44 +11:00
rc-swag
0b22c302c1
Merge pull request #7758 from keymanapp/fix/windows/7747/text-selectable-configuration
fix(windows): Fix text selectable configuration
2022-11-21 11:23:43 +10:00
rc-swag
7c5bfff3d5
Merge pull request #7765 from keymanapp/fix/windows/revert-ms-button-add-lang
fix(windows): backout ms button style for add lang pop up
2022-11-21 09:31:37 +10:00
Darcy Wong
cd27527646
Merge branch 'beta' into chore/common/crowdin-update-zhcn 2022-11-18 16:47:28 +07:00
Darcy Wong
53debd015b
Merge pull request #7715 from keymanapp/chore/common/crowdin-update-ff-ng
chore(common): Update crowin strings for Fulfulde
2022-11-18 14:20:54 +07:00
rc-swag
3b896f826d
fix(windows): delete file not belonging to repo 2022-11-18 16:48:18 +10:00
Ross
c7776a7220 fix(windows): backout ms button style for add lang pop up 2022-11-18 16:28:13 +10:00
Ross
a6a0192b8e fix(windows): fix checkbox and hint help button styles 2022-11-18 15:03:39 +10:00
Ross
5129a9d087 fix(windows): remove dead code 2022-11-18 13:43:29 +10:00
Ross
235e3b81cd fix(windows): remove dead code 2022-11-18 13:33:44 +10:00
Marc Durdin
038e9c2a56
Merge pull request #7754 from keymanapp/fix/windows/7737-elevate-icon-style
fix(windows): tweak elevate icon in Config dialog
2022-11-18 14:07:54 +11:00
Marc Durdin
fa46c14a29 chore(windows): restore koAutoOpenOSK 2022-11-18 12:02:36 +11:00
Marc Durdin
4308dea250 chore(windows): remove unused options from locales and UI
Removes koRunElevatedInVista, koSwitchLanguageForAllApplications,
koSwitchLanguageWithKeyboard, koUnknownLanguage, koTurnOnSurrogates
from localizations and from UI.

These options are no longer relevant, mostly due to improved operating
system support.

Only one option was still visible, koSwitchLanguageForAllApplications,
so this has been hidden in keyman_options.xsl, for future full removal.
2022-11-18 11:57:12 +11:00
Ross
70a7b7426b fix(windows): add user select to keep in touch
Adding this property to the frame even though embeded web page will
overide it
2022-11-18 10:22:19 +10:00
Ross
6269163483 fix(windows): remover user select from configuration 2022-11-18 10:19:42 +10:00
Marc Durdin
c4898bcc3a chore: move Reset Hints below hints option 2022-11-18 11:01:11 +11:00
Marc Durdin
8142be1abc fix(windows): buttons should be in list in Options tab
Relates to #7750.

Makes the buttons in the Options tab part of the list and can be
accessed via arrow keys.
2022-11-18 10:58:09 +11:00
Marc Durdin
d29cccee8e chore(windows): let not same as var 2022-11-18 10:30:47 +11:00
Marc Durdin
446089a8d3 fix(windows): arrow keys need to select next/prev item in options tab
Fixes #7750.
2022-11-18 10:28:25 +11:00
Marc Durdin
5d431d184d fix(windows): Download Keyboard blue footer
Fixes #7753.
2022-11-18 10:14:17 +11:00
Marc Durdin
dd08cc576d fix(windows): tweak elevate icon in Config dialog 2022-11-18 10:01:05 +11:00
Marc Durdin
0671c5b4ba
Merge pull request #7689 from keymanapp/chore/windows/7687-set-core-platform-explicitly
chore(windows): set platform core env explicitly
2022-11-17 06:18:32 +11:00
rc-swag
350279eb15
Merge pull request #7714 from keymanapp/chore/windows/unit-test-for-envin-vars
chore(windows): add unit test for SetupCoreEnvironment
2022-11-16 10:49:22 +10:00
Ross
2fcc0feed0 chore(windows): rearrange mock_options_update add commment 2022-11-15 11:03:41 +10:00
rc-swag
c61ef09312
Merge pull request #7207 from keymanapp/fix/windows/ezip-file-not-avail-elevated-admin
fix(windows): check if permissions for thread to access file
2022-11-14 14:16:47 +10:00
Darcy Wong
7ca7cb8d70 chore(common): Update crowin strings for Fulfulde 2022-11-14 10:27:30 +07:00
Darcy Wong
391eb402f3 chore(common): Update crowdin strings for Simplified Chinese 2022-11-14 09:56:52 +07:00
Ross
578a9017f4 chore(windows): add unit test for SetupCoreEnvironment 2022-11-14 12:55:13 +10:00
Marc Durdin
c0e640fe73
Merge pull request #7710 from keymanapp/chore/windows/keyman-debug-symbols
chore(windows): include debug info in keyman build
2022-11-14 11:57:26 +11:00
Marc Durdin
1efe89b946
Merge pull request #7707 from keymanapp/chore/windows/report-errors-for-cust-init-better
chore(windows): Add safecall for internal CustomisationStorage API interface
2022-11-14 11:57:19 +11:00
Marc Durdin
350e4e2930
Merge pull request #7709 from keymanapp/fix/windows/7708-handle-timeout
fix(windows): handle timeout in downloads
2022-11-14 11:57:13 +11:00
Marc Durdin
d309d0e148
Merge pull request #7703 from keymanapp/chore/windows/add-sentry-traces-for-js-crashes
chore(windows): add sentry traces for unsolved crashes
2022-11-14 11:57:05 +11:00
Marc Durdin
2e58174092 chore(windows): include debug info in keyman build
Same as #7600, but for keyman.dpr.
2022-11-14 10:52:20 +11:00
Marc Durdin
c07ea36ec2 fix(windows): handle timeout in downloads
Fixes #7708.
2022-11-14 10:35:20 +11:00
Marc Durdin
ce93901a5f chore(windows): Add safecall for internal CustomisationStorage API interface
This makes it easier to track what is happening for errors where
otherwise we found that exception messages were being cropped; for
example, see KEYMAN-WINDOWS-X.

The error messages were being cropped because the exception handler was
in the exe module, but the exception was being raised in kmcomapi
module. When the exception was handled, the handler tested to see if
the exception object inherited from exemodule.Exception, but it was
inheriting from kmcomapi.Exception instead, and so it did not attempt
to load the message detail.

By adding `safecall` calling convention to `KeymanCustomisation`, we
move responsibility for handling the exception to the
`TKeymanAutoObject.SafeCallException` function, and we get full detail
for the exception.
2022-11-14 09:40:14 +11:00
Marc Durdin
fbd1a2e7a5 chore(windows): add sentry traces for unsolved crashes
Adds Sentry breadcrumbs for the following crash reports:
* KEYMAN-WINDOWS-62
* KEYMAN-WINDOWS-6H (? no reports in recent releases, so may be
  resolved)
* KEYMAN-WINDOWS-7J
* KEYMAN-WINDOWS-4R

The source of these crashes is hard to pinpoint, so hoping that this
additional data sheds some light.
2022-11-14 07:21:22 +11:00
Marc Durdin
0eb39dc9ea fix(windows): click in 1 pixel high box in Language Switch window caused crash
Fixes #7698.

Due to a `>` instead of a `>=` check, there was a one pixel high box at
the bottom of each list of input methods for each language which would
reuslt in an invalid value for `FNewHoverKeyboard`
(`lang.KeyboardCount`).

As well as fixing this, I changed the result for clicking below the
input method list to the more logical last item in the list rather than
the first.
2022-11-12 10:23:32 +11:00
Marc Durdin
cb9d1589c2 fix(windows): make sure IdStackWindows finalizes after Vcl.Forms
Fixes #7690.

When kmshell.dpr is being shut down by Windows via `WM_ENDSESSION`, the
order of termination of units through `finalization` sections means that
`IdStackWindows` was finalizing while components were still depending on
it, causing a cascade of exceptions resulting eventually in the crash
visible in #7690.

We saw this when there were message loops before `Application.Run` had
ever been called. For example, message box/dialog, ShellExecute (yep...
this can do a `PeekMessage`), `THttpUploader` (which calls
`Application.ProcessMessages`) and probably others.

Ideally, it would be better to always call `Application.Run`, but it is
not safe to call `Application.Run` more than once, because it ends up
adding multiple `DoneApplication` exit procs, which would likely cause
other crashes.

I landed on the somewhat heavy-handed solution of adding
`IdStackWindows` to the start of the project `uses` list, ensuring it is
the last unit to be finalized -- importantly, before `Vcl.Forms`. A
better solution would be to find a way of ensuring that
`Application.Run` is called, just once, in all situations, but this is
likely to be hard to achieve. The shutdown sequence for Delphi apps is
so very, very fragile.
2022-11-11 13:03:47 +11:00
Marc Durdin
6e07877675 chore(windows): set platform core env explicitly
Fixes #7687.
2022-11-11 08:05:21 +11:00
Marc Durdin
52c9fde57a
Merge pull request #7667 from keymanapp/fix/windows/base-layout-support-in-core
fix(windows): base layout support in Keyman Core
2022-11-11 06:37:39 +11:00
Marc Durdin
4738b6a514 fix(windows): Improve shutdown robustness
Relates to KEYMAN-WINDOWS-B.

While this doesn't address the root cause of the exception, it should
prevent this unhandled exception, and adds breadcrumbs to help us see
which code path might be triggering the issue.
2022-11-10 16:10:49 +11:00