Commit graph

2498 commits

Author SHA1 Message Date
Marc Durdin
51a94a1d7d feat(developer): cleanup touch layout files on load and save
Improves the .keyman-touch-layout clean schema and adds additional
cleanup during load and save in the Touch Layout Editor.

The compiler already does transforms for the relevant fields to the
formats that KeymanWeb is expecting (in particular, width, pad to
string).

This is preparation for adding hint data to the format as well.
2022-07-14 10:57:39 +10:00
Marc Durdin
d4c3dd89a3
Merge pull request #6918 from keymanapp/feat/developer/build-kmcomp-distributable-in-release
feat(developer): compiler regression support (build kmcomp-$version.zip during release build) 🚦
2022-07-14 10:52:45 +10:00
Marc Durdin
1909d92b47 chore(common): keymansentry UNICODE for Winapi 2022-07-11 11:19:53 +10:00
Joshua Horton
be7c9c58a9
Merge pull request #6808 from keymanapp/fix/web/6792-chiral-modifier-mapping
fix(web): maps touch-layout chiral alt, ctrl to non-chiral when non-chiral keyboard is active
2022-07-11 08:12:46 +07:00
Marc Durdin
b700432583 fix(developer): kmdecomp stability tweaks
Adds kmdecomp to kmcomp-<version>.zip and fixes a couple of stability
issues:

* Increase buffer sizes (this fix very much a hack)
* Ensures that .bmp/.ico files are saved to correct output folder
* Disable loading sentry.dll when running on WINE
2022-07-11 10:42:33 +10:00
Marc Durdin
ace0cbd1d6 fix(web): ncaps rules not matching on touch
Fixes #6910.

Regression introduced in #6874 / #6849 (which themselves were improving
the Caps Lock situation).

Ensures that either `NO_CAPS` or `CAPS` is always set in the modifier
flags.
2022-07-08 16:09:28 +10:00
Marc Durdin
27eb1b9f19 fix(developer): add no-ops for symbol builds for components
Fixes the release build where we do `nmake symbols` for developer/src,
which was failing on calls to these two sets of components. (In
windows/src, the build structure is different due to an additional layer
of folders, so we end up with no `nmake symbols` call on the common
components).
2022-07-08 05:04:10 +10:00
Marc Durdin
8ba11f608d
Merge pull request #6890 from keymanapp/fix/web/improve-console-error-reporting
fix(web): improve `console.error()` reporting
2022-07-07 09:40:06 +10:00
Marc Durdin
6c39bb8b0b
Merge pull request #6877 from keymanapp/feat/developer/touch-layout-flick-and-multitap
feat(developer): add flick and multitap to touch layout schema and doc 🙊
2022-07-06 15:18:32 +10:00
Marc Durdin
a4a1e269d1
Merge pull request #6856 from keymanapp/feat/developer/keyman-touch-layout-schema
feat(developer): .keyman-touch-layout schema for 15.0 🙊
2022-07-06 15:18:23 +10:00
Marc Durdin
ace3e2c6b0
chore: Apply suggestions from code review
Co-authored-by: Joshua Horton <joshua_horton@sil.org>
2022-07-06 15:15:09 +10:00
Marc Durdin
10caf08919 fix(web): only report console errors if _enabled 2022-07-05 13:14:20 +10:00
Marc Durdin
0b64871be3 fix(web): improve console.error() reporting
The back story:

Currently Keyman for Android reports errors sent to the console via
`console.error()` into Sentry but sentry-manager itself does not. This
means that Keyman for iPhone and iPad and other users of sentry-manager
do not report these errors. Many of these errors are important.

What's worse is that Keyman for Android's error reporting here (via the
`sendKMWError()` function in Keyman Engine for Android) does not capture
stack traces, and so many of the errors we get do not have enough
information to resolve them.

Furthermore, by having `sendKMWError()` in Keyman for Android, we
capture exceptions and other program errors twice -- once on the web
side, and once on the Java side -- this adds noise to our error
reporting. Sentry also tends to lump many unrelated `sendKMWError()`
events together, so tracking resolution to the errors is painful.

The fix:

This adds a patch to sentry-manager to capture `console.error()` and
`console.warning()` events and report them through Sentry's normal error
reporting, and disables the `sendKMWError()` report (although we leave
the breadcrumb in place for when there are later, related Java errors).
There is a Sentry integration called CaptureConsole, but it does not
support capturing stack traces until v6.14
(https://github.com/getsentry/sentry-javascript/pull/4034). Updating
Sentry to 6.14 or newer is a bigger job (due to ES6 baseline req. etc.)

Note that Keyman for iOS currently has some other stubs in place
overriding the `console.*` functions. These should be removed for
release builds, so that we can use this pattern instead. I will try and
tackle this in a follow-up PR (I will build it on my mac so I can test
it).

A sample error report captured with this mechanism (no sourcemaps here
because this is a -local build):

https://sentry.io/organizations/keyman/issues/3401287467/events/c40fd2cebb7743cc8dfe72e0dd34bf65/?project=5983524

I am proposing we back-port this to 15.0-stable as we are missing a lot
of data in many of our error reports on Android.
2022-07-05 10:57:42 +10:00
Marc Durdin
b2427386f1 feat(developer): tighter spec for .keyman-touch-layout 2022-06-30 14:37:43 +10:00
Marc Durdin
ebfd474d90 feat(developer): add flick and multitap to touch layout schema and doc
Does not tighten the spec for legacy data -- that should probably be a
separate schema file.
2022-06-30 11:43:51 +10:00
Marc Durdin
3d9d6f59dc chore: add documentation for keyman-touch-layout 2022-06-30 11:07:38 +10:00
Marc Durdin
7ec9859838 fix(developer): Show full version number
Updated various places in Keyman Developer to show the full
VersionWithTag rather than the short version number we had been
previously showing:

- About dialog
- Welcome screen
- Installer
- kmcomp help
- kmconvert help
- kmanalyze help
- kmdecomp help

This should help when testing to verify that we are testing the right
version.

Also fixed the keymansentry path when running command line C++ programs
from source repo.
2022-06-29 10:58:40 +10:00
Marc Durdin
60d4ceb5e6 fix(web): Maintain separate Caps Lock states for touch and physical
Fixes #6799.

Caps Lock state management for touch layouts was not quite right -- it
touched the base Caps state variables rather than just the event Lstates
property. This meant that it was impossible to track the physical Caps
Lock key separately to the touch layout layer, and that the two states
would interfere with each other.
2022-06-29 06:20:45 +10:00
Marc Durdin
87cc5d42a8 feat(developer): add missing props to schema and make more lenient 2022-06-29 06:05:30 +10:00
Marc Durdin
d9accbe07b feat(developer): draft .keyman-touch-layout schema 2022-06-28 11:31:20 +10:00
Marc Durdin
9b4eedc2ea chore(web): update kmlmc path ref 2022-06-25 07:40:22 +10:00
Marc Durdin
4f36c3c2df chore(developer): Merge branch 'master' into chore/developer/js-to-lmc 2022-06-25 05:48:57 +10:00
Marc Durdin
3464cbac35 chore(windows): Merge branch 'chore/developer/js-to-lmc' into chore/windows/move-general-developer-files 2022-06-25 05:42:39 +10:00
Marc Durdin
018eb6cd53 chore(windows): Merge branch 'chore/developer/js-to-lmc' into chore/windows/move-common-packages-files 2022-06-25 05:41:23 +10:00
Marc Durdin
4eaee2217a
Merge branch 'chore/developer/js-to-lmc' into chore/windows/move-common-keyboards-files 2022-06-25 05:40:25 +10:00
Marc Durdin
c108008440 chore(windows): Merge branch 'chore/developer/js-to-lmc' into chore/windows/move-common-general-files 2022-06-25 05:39:26 +10:00
Marc Durdin
f22ed1a4a7
Merge pull request #6815 from keymanapp/chore/windows/delete-unused-general-files
chore(windows): delete unused files from global/delphi/general 🎢
2022-06-25 05:32:03 +10:00
Marc Durdin
a0fe8b16f8
Merge branch 'chore/developer/js-to-lmc' into chore/developer/move-common-components 2022-06-24 14:23:02 +10:00
Marc Durdin
bbb0f9d3d5 chore(developer): cleanup some manual tests 2022-06-24 14:21:03 +10:00
Joshua Horton
f6841333a2
Merge pull request #6557 from keymanapp/change/web/5943-ie-rooting
change(web): drops old IE-related handling code
2022-06-24 08:35:03 +07:00
Marc Durdin
d8b5e214cf
Merge pull request #6781 from keymanapp/chore/windows/remove-unused-components
chore(windows): remove unused components 🎢
2022-06-24 09:35:59 +10:00
Marc Durdin
34d4706a9b
Merge pull request #6760 from keymanapp/chore/windows/move-delphi-global-ui-units
chore(windows): rearrange global/delphi/ui units 🎢
2022-06-24 09:35:52 +10:00
Marc Durdin
1910ac85f5 chore(windows): Merge branch 'chore/developer/js-to-lmc' into chore/windows/move-delphi-common-units 2022-06-23 15:56:15 +10:00
Marc Durdin
0902c730c0
Merge pull request #6756 from keymanapp/chore/windows/move-keymanversion-h
chore(windows): move keymanversion.h to common 🎢
2022-06-23 15:55:06 +10:00
Marc Durdin
45969da17b chore(windows): Merge branch 'chore/developer/js-to-lmc' into chore/windows/cleanup-keyman64-h 2022-06-23 15:54:11 +10:00
Marc Durdin
5075b54343
Merge branch 'chore/developer/js-to-lmc' into chore/windows/move-common-headers 2022-06-23 15:52:06 +10:00
Marc Durdin
385045e978 chore(windows): fixup refs and move StockFileNames
* StockFileNames.pas was missed in earlier moves.
* Cleaned up references in various dproj files
* Fixed up broken references to common files
2022-06-23 09:47:59 +10:00
Marc Durdin
8cbebf7ade chore(windows): move general package units to common 2022-06-23 06:36:23 +10:00
Marc Durdin
2aaa31eae2 chore(windows): move general keyboard units to common 2022-06-23 06:33:16 +10:00
Marc Durdin
3321667ffa
Merge pull request #6629 from keymanapp/chore/common/move-common-core-desktop-to-core
chore(core): move common/core/desktop/ to core/ 🍏
2022-06-23 06:24:42 +10:00
Marc Durdin
bd68d0dacc
Merge pull request #6753 from keymanapp/chore/windows/move-windows-headers
chore(windows): relocate windows headers 🎢
2022-06-22 14:33:09 +10:00
Marc Durdin
3d0294769d
Merge pull request #6752 from keymanapp/chore/windows/cleanup-vkeys-h
chore(windows): merge vkeys.h and move to common 🎢
2022-06-22 14:33:00 +10:00
Marc Durdin
0c6142350b
Merge pull request #6751 from keymanapp/chore/developer/move-headers
chore(developer): move developer-specific headers 🎢
2022-06-22 14:32:45 +10:00
Marc Durdin
d7ddcd722d
Merge pull request #6750 from keymanapp/chore/windows/remove-obsolete-headers
chore(windows): remove unused, obsolete headers 🎢
2022-06-22 14:32:38 +10:00
Marc Durdin
c6234939bd
Merge pull request #6747 from keymanapp/chore/windows/move-global-vc
chore(windows): move global/vc to common and global/cpp 🎢
2022-06-22 14:32:24 +10:00
Marc Durdin
b54c66a87e
Merge pull request #6746 from keymanapp/chore/windows/move-global-inst
chore(windows): move global/inst to common 🎢
2022-06-22 14:32:18 +10:00
Marc Durdin
d938a58337
Merge pull request #6744 from keymanapp/chore/windows/move-signtime
chore(windows): move signtime.bat to common 🎢
2022-06-22 14:32:03 +10:00
Marc Durdin
7895cf2382 chore(windows): move utilicon.pas to common 2022-06-22 14:03:19 +10:00
Marc Durdin
96c1e10874 chore(windows): move Keyman.System.RegExGroupHelperRSP19902 unit to common 2022-06-22 14:02:03 +10:00
Marc Durdin
331c9d2d71 chore(windows): move shared general units to common 2022-06-22 13:58:58 +10:00