Commit graph

2180 commits

Author SHA1 Message Date
Marc Durdin
bed0ab2296 chore: remove debug-tests configurations 2021-06-23 11:51:15 +10:00
Marc Durdin
4601dc2fe1 chore(windows): add engine test framework
This is a rudimentary start to having unit tests for keyman32.

At present, it will build only in win32/debug and requires you
to manually run make -DDEBUG beforehand. The tests currently
run in Visual Studio and are not integrated.
2021-06-23 11:48:42 +10:00
Joshua Horton
05c319ebf4
Merge pull request #5291 from keymanapp/refactor/web/osk-keys
refactor(web): OSK key source-code reorganization
2021-06-22 13:58:39 +07:00
Marc Durdin
23122b9fad
Merge pull request #5254 from keymanapp/fix/windows/keymanx64-controller-interface-stability
fix(windows): restore endpoints for interface stability
2021-06-22 14:11:55 +10:00
Marc Durdin
3bd754b230
Merge pull request #5233 from keymanapp/feat/common/wasm-infrastructure
feat(common): keyboard_processor wasm build
2021-06-18 16:09:56 +10:00
Marc Durdin
3d4acd8e10 chore: correct example 2021-06-17 04:52:33 +10:00
Marc Durdin
87397e8846 fix(developer): kmconvert help match reality
kmconvert built-in help was missing `-targets`, misspelled
`-full-copyright`, and the parameter checking was skipping the last
parameter (which only mattered if the last parameter was `-nologo`, but
still...).
2021-06-17 04:41:09 +10:00
jahorton
92a17542ab refactor(web): special char defn site; used only by keys 2021-06-16 08:47:40 +07:00
Marc Durdin
3bf61645f1 chore: cleanup now that build passes 2021-06-16 06:21:12 +10:00
Marc Durdin
4ba6f7cb2b chore(common): cross-platform tweaks 2021-06-16 05:43:09 +10:00
Darcy Wong
2b4c64ae90
Merge pull request #5269 from keymanapp/chore/crowdin-es-419
chore(common): Check in crowdin strings for Spanish (Latin America)
2021-06-15 07:30:33 +07:00
Marc Durdin
3f618d4309 chore: more path cleanups 2021-06-15 04:45:29 +10:00
Darcy Wong
b67602f7f9 chore(windows): Update string for S_OnScreenKeyboard_Custom 2021-06-14 08:08:36 +07:00
Marc Durdin
a6dd84052d chore(common): update dependency refs 2021-06-14 06:16:24 +10:00
Darcy Wong
49544f5b11 chore(common): Add YouTube links to Keyman 14 features 2021-06-13 10:09:52 +07:00
Darcy Wong
5552ee4aad chore(common): Check in crowdin strings for Spanish (Latin America) 2021-06-11 07:33:56 +07:00
Marc Durdin
7d77f98279 chore(windows): unreferenced parameters 2021-06-11 06:19:55 +10:00
Marc Durdin
06a92a986f chore(windows): Keyman_PostControllers returns void 2021-06-10 12:28:20 +10:00
Marc Durdin
16ac56f786 chore(windows): def declaration order 2021-06-10 11:21:22 +10:00
Marc Durdin
cda2272ccb fix(windows): restore endpoints for interface stability
Fixes #5245.

Interfaces should remain stable between versions of Keyman, so that an
upgraded kmcomapi.dll or keyman32.dll will not crash older clients, even
if they may not behave entirely as expected.
2021-06-10 11:19:29 +10:00
Marc Durdin
9bada9624e
Merge pull request #5207 from keymanapp/fix/windows/escape-key-in-download-dialog
fix(windows): support Esc key in Download Keyboard dialog
2021-06-08 14:40:14 +10:00
Marc Durdin
2e7ec16133
Merge branch 'master' into feat/common/rust-infrastructure 2021-06-07 08:45:08 +10:00
Marc Durdin
8e82265d33 fix(developer): support spaces in regression tests
Fixes #5216.

A `<text>` element in the regression text xml which contained only
whitespace would cause the import to crash as this would be ignored by
the XML parser, leading to a `Null` `nodeValue` for that element. To
solve this, we need to:

1. Use `xml:space="preserve"` attribute on `<text>` elements
2. Update the DTD to allow `xml:space` on `<text>` elements
3. While we are at it, move the DTD from `www.tavultesoft.com` to
   `api.keyman.com`.

See also:
* keymanapp/tavultesoft.com#4
* keymanapp/api.keyman.com#155
2021-06-03 09:41:05 +10:00
Marc Durdin
8ca0fc7928 fix(windows): fix common include paths 2021-06-02 13:52:14 +10:00
Marc Durdin
1dbad94d78 fix(windows): makefile paths 2021-06-02 13:52:12 +10:00
Marc Durdin
4a09dd3b48 feat(windows): add common core libraries and includes 2021-06-02 13:52:11 +10:00
Marc Durdin
0c65ea4502
Merge pull request #5203 from keymanapp/fix/windows/5195-fix-size-of-splash
fix(windows): fix size of splash
2021-06-01 12:39:57 +10:00
Marc Durdin
1b340077b5
Merge pull request #5202 from keymanapp/fix/windows/5196-keymanx64-start-with-shellexecute
fix(windows): start keymanx64 with ShellExecute
2021-06-01 12:13:47 +10:00
Marc Durdin
8cb32196ff fix(windows): support Esc key in Download Keyboard dialog
The Escape key does not work in the search iframe when in the parent
web document. However, it is easy to test for it in the hosting form.
2021-06-01 11:04:26 +10:00
Marc Durdin
f29c71d988
Merge pull request #5187 from keymanapp/fix/windows/5166-sentry-dll-handling
fix(windows): sentry.dll version handling
2021-06-01 05:59:26 +10:00
Eberhard Beilharz
b0358509c0
Merge pull request #5169 from keymanapp/fix/linux/issue-5072
fix(common/core/desktop): Fix failing tests on armhf
2021-05-31 14:58:29 +02:00
Marc Durdin
8843828879
Merge pull request #5192 from keymanapp/chore/windows/three-small-issues
chore(windows): minor maintenance
2021-05-31 21:15:34 +10:00
Marc Durdin
5ebd57a335
Merge pull request #5190 from keymanapp/fix/windows/avoid-cached-hotkey-state
fix(windows): avoid cached hotkey state
2021-05-31 21:15:26 +10:00
Marc Durdin
203b3cacec fix(windows): fix size of splash
Fixes #5195.
Fixes KEYMAN-WINDOWS-M0.

The splash screen for Keyman would crash on start with the latest
Chromium update. This fix resolves the issue, which related to the
resize-to-content code, by removing the resize-to-content code and
instead hardcoding the window size in the .dfm.

This is a significant simplification of the browser host and I think it
is worthwhile. The only place the resizing code was still used was in
the splash screen.
2021-05-31 20:16:44 +10:00
Marc Durdin
c4d7a6d58c fix(windows): start keymanx64 with ShellExecute
Fixes #5196.

It is complicated to start a `UIAccess=true` process with
`CreateProcess`, so instead we'll use `ShellExecute`. This means passing
a PID instead of a process handle to keymanx64.

I took the opportunity to refactor slightly the main function in
keymanx64, as the failure modes were pretty WET.
2021-05-31 19:26:36 +10:00
Marc Durdin
dc784b2ddc
Update windows/src/global/delphi/general/Keyman.System.Settings.pas
Co-authored-by: Darcy Wong <darcywong00@users.noreply.github.com>
2021-05-31 11:28:14 +10:00
Marc Durdin
c9897bb38f fix(windows): cleanup edge cases in k32_load
Matches work completed in #5169 for Keyman Core, kmx_file.cpp.

While this code will hopefully disappear in 15.0, it's good to make sure
we aren't diverging beforehand.

Also tidies up a couple of other cases in `CopyKeyboard` in Keyman Core.
2021-05-31 10:58:23 +10:00
Marc Durdin
b38cb727c2
Merge branch 'chore/windows/three-small-issues' into fix/windows/5166-sentry-dll-handling 2021-05-31 06:36:27 +10:00
Marc Durdin
ed4c2390c1 fix(developer): kmbrowserhost installed with wrong name 2021-05-31 06:34:30 +10:00
Marc Durdin
345545a19a chore(windows): minor maintenance 2021-05-31 06:32:08 +10:00
Marc Durdin
4e56f2eaeb fix(windows): force add sentry binaries 2021-05-29 18:07:38 +10:00
Marc Durdin
9dcb8aa054 fix(windows): use version-specific sentry-db path
Fixes #5188.
2021-05-29 16:23:17 +10:00
Marc Durdin
733d112d05 fix(windows): swap default for flag 2021-05-29 16:16:14 +10:00
Marc Durdin
9fbcc3fd7b fix(windows): avoid cached hotkey state 2021-05-29 15:41:35 +10:00
Marc Durdin
7235bf2057 fix(windows): sentry.dll version handling
Fixes #5166.

This introduces versioned management of sentry.dll for Keyman for
Windows, Keyman Engine and Keyman Developer. As sentry.dll's ABI is not
backwardly compatible, we have to maintain independent copies of each
DLL for each app.

sentry.dll (or sentry.x64.dll for x64 apps) will be found in the
sentry-0.4.9 folder relative to the running process, except when running
from within the keyman repo tree (based on presence of KEYMAN_ROOT env
var). In those cases, the windows/src/ext/sentry sentry.dll will be
used, allowing us to test new debug time sentry DLLs easily.

A little bit of cleanup and consolidation was also done in the
KeymanPaths.pas unit.
2021-05-28 15:55:06 +10:00
Marc Durdin
5fac633fb6 fix(common): build script help param
When working on a new build script, I tripped over the `-?` question
mark help parameter here, as it needs to be escaped. Opted to fix all
the instances in our scripts, although AFAICT there would not have been
current bugs arising from this, as there were no conflicting one
character options lower in the case list.
2021-05-28 09:50:40 +10:00
jahorton
8f1e1dc65a feat(common): offline help css 2021-05-26 15:40:45 +07:00
Marc Durdin
5b7dfa006b
Merge pull request #5144 from keymanapp/chore/windows/4607-sentry-update
chore(windows): Update Sentry to 0.4.9
2021-05-26 12:05:31 +10:00
Marc Durdin
e46a3ee46c
Merge pull request #5143 from keymanapp/chore/windows/vs2019
chore(windows): move to vc++ 2019
2021-05-25 19:38:32 +10:00
Marc Durdin
7c087ef6ac chore(windows): Update Sentry to 0.4.9
Fixes #4607.

The Sentry 0.4.9 update actually simplifies some things. It does only
build with VS2019 by default, which pushed me to update Keyman build to
the same version, but that's a good thing overall, and was fairly
painless anyway.

Previously, we had our own custom build of sentry-native to make sure
that the C++ runtime libraries were statically linked to sentry.dll, but
this is now configurable in the build options, so we were able to
abandon our fork of the project at
https://github.com/keymanapp/sentry-native, which is good news. (I will
leave the fork there just in case but we'll eventually delete it once we
are convinced that this is robust.)

I have updated sentry.pas to match sentry.h; most of the changes are in
comments but there are a handful of new functions and some small changes
to function signatures.

I retested the Sentry exception scenarios and results can be found at
https://docs.google.com/spreadsheets/d/19xfurbn4cGubSCD68EGuKhcR5HrjaUcY/edit#gid=170604584

There may be an issue with Delphi x64 programs missing symbols from my
machine; something to keep an eye on but not a blocker for this merging,
I think.
2021-05-25 18:34:38 +10:00