Commit graph

3302 commits

Author SHA1 Message Date
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
Marc Durdin
17518ca2ee chore(windows): update headers for mcompile 2021-05-25 18:33:46 +10:00
rc-swag
0fd5f01187
Merge pull request #5119 from keymanapp/docs/windows/5118-windows-keyman-engine-readme
docs(windows): Initial commit - README.md
2021-05-25 16:45:50 +10:00
Marc Durdin
f3ba9445dd chore(windows): update vcxproj for vc++2019 2021-05-25 15:58:48 +10:00
Marc Durdin
39cb018042 chore(windows): move to vc++ 2019 2021-05-25 15:56:36 +10:00
rc-swag
98d802f769
docs(windows): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-05-25 08:08:13 +10:00
Marc Durdin
45178152d0 chore(windows): update compiler option for consts
We still use -$J+ for our Delphi compiles but this was
buried in a .cfg which is deprecated. Moving this flag to Defines.mak
2021-05-24 15:54:14 +10:00
Ross Cruickshank
b2f3f5d5db docs(windows): add missing markdown "#" 2021-05-24 10:43:49 +10:00
Ross Cruickshank
4bbd242161 docs(windows): adding README.md to windows/src
Fixes #5118
2021-05-24 10:32:06 +10:00
Marc Durdin
8e435f67d1 chore(windows): cleanup old .dof, .bdsproj and .cfg files
Fixes #519.

I have removed these .cfg, .dof, and .bdsproj files from the primary
projects in the Windows source. There is some ambiguity as to whether
.cfg files are used by the command line compiler (I checked with procmon
and they *are* read by dcc32.exe), so we will need to make sure that
no adverse changes have been made by this. In theory at least, the
.dproj data trumps .cfg data -- and all the projects in question have
a .dproj file -- so this should be a safe cleanup.

I have opted not to touch the /buildutils, /ext, /support and
/test folders at this point.
2021-05-24 10:22:28 +10:00
Marc Durdin
cb8c77daaf chore: cleanup 2021-05-21 15:26:03 +10:00
Marc Durdin
d8af055626 chore(windows): adjust CEF interfaces 2021-05-21 15:21:31 +10:00
Marc Durdin
9e53505be0 chore(windows): cef4delphi source units 2021-05-21 15:20:58 +10:00
Marc Durdin
9f8a191a3e chore(windows): fetch origin before checkout 2021-05-21 14:59:48 +10:00
Marc Durdin
56fdc98a81 chore(windows): Chromium 89.0.18
Updates Chromium Embedded Framework to 89.0.18. Goes with
branch v89.0.18 of https://github.com/keymanapp/CEF4Delphi_Binary

Adds a script to checkout the correct version of CEF from the repo
according to CEF_VERSION.md.
2021-05-21 14:47:18 +10:00
Marc Durdin
998ac33c85
Merge pull request #5096 from keymanapp/fix/developer/5095-editor-settext-not-synchronous
fix(developer): TframeTextEditor.SetText was not synchronous
2021-05-21 08:31:40 +10:00
Marc Durdin
f86b8b499f
Merge pull request #5085 from keymanapp/feat/developer/4807-full-copyright-field
feat(developer): Add 'full copyright' field to templates
2021-05-21 08:31:28 +10:00
Marc Durdin
af1a4e7f66
Merge pull request #5084 from keymanapp/chore/windows/reorganise-tests
chore(windows): reorganise tests
2021-05-21 06:30:58 +10:00
Ross Cruickshank
f98cef1573 docs(windows): Update windows/engine/readme 2021-05-20 15:37:20 +10:00
Ross Cruickshank
5be6825721 docs(windows): Initial commit - README.md 2021-05-20 13:43:44 +10:00
Darcy Wong
f31edd8b52 chore(common): Check in crowdin strings for Amharic 2021-05-19 09:12:39 +07:00
Marc Durdin
9ecbf9bf60 fix(developer): TframeTextEditor.SetText was not synchronous
Fixes #5095.

If the text editor was loaded, `SetText` would not be synchronous
because it executed some Javascript to make the text change, so setting
the text and immediately reading it again would give the old text. This
is what the On Screen Keyboard editor was doing (it would synchronize
the visual editor and text editor at save). This fix updates `SetText`
to update the backing store as well as the front end editor.
2021-05-18 06:30:22 +10:00
Marc Durdin
17e8780e8e feat(developer): Add 'full copyright' field to templates
Fixes #4807.

We want to differentiate between a short copyright message and a
longer one that also contains a date. The long one is only needed in
one place in a typical keyboard project. This reduces maintenance when
making keyboard updates.
2021-05-14 16:35:44 +10:00
Marc Durdin
756e2ece13 chore: fixup paths for tests 2021-05-14 14:32:29 +10:00
Marc Durdin
8c1b034a7b chore: reorganise tests 2021-05-14 13:35:02 +10:00
Marc Durdin
c8d6e4fe6f fix(developer): kmconvert commandline and deploy
A few fixes and improvements:
* kmconvert was missing a command line parameter for `-target` to
  specify the platform targets for a project
* kmconvert should avoid throwing unhandled exceptions, rather if
  sentry is not present then just write to console.
* Include kmconvert and its data files in the deployment of kmcomp.zip,
  which is done on the build agent (just need to make sure files are
  in the right place here.)
* Side fix: also made sure kmcomp would emit the exception message to
  console if sentry is not present.
2021-05-14 10:56:58 +10:00
Marc Durdin
c078661a0f chore(windows): remove unused keymanx64 parameter
With the recent refactor in #5060, we no longer need the main form
window handle parameter in keymanx64.
2021-05-11 16:03:19 +10:00
Marc Durdin
9c01777ece chore: add missing file 2021-05-11 15:51:20 +10:00
Marc Durdin
d26b01ad99 chore(windows): remove KMC_CHANGEUISTATE
The `KMC_CHANGEUISTATE` flag for `wm_keyman_control` is no longer
processed anywhere. Removes it and the `UpdateKeymanUI` function which
called it.

The `#define` for the flag has been left, commented out, to clarify what
would otherwise be a gap in identifiers (use `git blame` to learn more).
2021-05-11 15:19:01 +10:00