Commit graph

3486 commits

Author SHA1 Message Date
Marc Durdin
c4871c981c
Merge branch 'master' into feat/developer/3863-new-touch-layout-key-tags 2020-11-25 12:51:14 +11:00
Marc Durdin
48a3d0c9fa
Update windows/src/developer/TIKE/compile/CompileKeymanWeb.pas
Co-authored-by: Joshua Horton <joshua_horton@sil.org>
2020-11-25 12:50:45 +11:00
Marc Durdin
9f53e0f0af fix(windows): sentry range check error
In some circumstances, Sentry would get a range check error while
processing the call stack due to DWORD being defined as NativeInt,
not NativeUInt, in old JWA libraries. This would mask the original
exception, and could cause the app to hang.
2020-11-23 10:57:01 +11:00
Marc Durdin
0b62095726 feat(developer): improve downlevel support for new special labels 2020-11-23 06:23:47 +11:00
Marc Durdin
c6f25b1484 chore: tweak comment 2020-11-18 09:11:40 +11:00
Marc Durdin
83325e878c feat(developer): add new touch layout special tags
Fixes #3863.

This adds the new `*RTLEnter*` and other tags introduced in #3851 to
the touch layout editor, and adds validation for use in 14.0 keyboards.

Due to a limitation in the compiler architecture, use of these tags
will not trigger the automatic keyboard versioning functionality; the
keyboard developer must explicitly specify `store(&VERSION) '14.0'`.

Also:

* synchronised error codes between .h and .pas.
* synchronised touch layout tags between Developer and KeymanWeb, and
  cleaned up builder.js usage thereof.
* added support for KeymanwebOsk font override when special tags are
  identified.
* added basic tests to ensure that the compiler is catching use of these
  tags as needed.
* updated keymanweb-osk.ttf font in Developer.
2020-11-18 08:58:57 +11:00
jahorton
598984bc54 chore(common/core/web): Merge branch 'master' into feat/common/core/web/input-processor-unit-tests 2020-11-17 13:11:10 +07:00
Joshua A. Horton
1e52b5c5ba fix(developer): reverts first bugfix attempt 2020-11-17 10:07:57 +07:00
Joshua Horton
ad7a612b42
Merge pull request #3847 from keymanapp/fix/common/core/web/meta-key-handling
fix(common/core/web): meta key handling
2020-11-17 10:02:18 +07:00
jahorton
7e10c56354 docs(common): requested comment tweaks 2020-11-17 09:57:31 +07:00
jahorton
ad6489d9d3 chore(common): adds requested comments re: tentative META flag 2020-11-17 09:42:28 +07:00
Marc Durdin
83a89c77a1
Delphi version requirement note 2020-11-17 10:22:54 +11:00
Joshua A. Horton
d6c90d1ae0 fix(developer): more same-build local change reversion 2020-11-16 14:13:49 +07:00
Joshua A. Horton
6424b6816a fix(developer): undoes unwanted CI-breaking local npm side-effect 2020-11-16 12:06:28 +07:00
Marc Durdin
4de4f3c42e feat(developer): support major version upgrades
See also keymanapp/api.keyman.com#123
2020-11-16 15:33:26 +11:00
Marc Durdin
d87aa19868 feat(windows): major version upgrades
Relates to #1635.

This goes with keymanapp/api.keyman.com#122, and ensures that major
upgrades are offered regardless of the rollout schedule, if they are
available, when the user manually checks for an update.
2020-11-16 14:33:40 +11:00
Marc Durdin
e83e9f94a6 fix(windows): makefile format error
Turns out that `!IFDEF` must be in first column of line -- you cannot
indent it. Broke the release build last night. Yucko.
2020-11-13 06:15:58 +11:00
Marc Durdin
63086e9e9c
Merge pull request #3842 from keymanapp/fix/windows/sporadic-8087-controlword-corruption
fix(windows): sporadic 8087 control word corruption
2020-11-12 15:07:53 +11:00
Marc Durdin
42aab7a4c4
Merge pull request #3834 from keymanapp/chore/windows/3590-symbol-server
chore(windows): symbol server support
2020-11-12 15:07:44 +11:00
Marc Durdin
f3dce9e580
Merge pull request #3833 from keymanapp/fix/windows/3831-sizeofimage-header
fix(windows): SizeOfImage header was wrong for dbg
2020-11-12 15:07:37 +11:00
Marc Durdin
ebf03bb873
Merge pull request #3830 from keymanapp/fix/windows/3810-import-windows-keyboard-layout-mismatch
fix(windows): Import OSK wrong for European layouts
2020-11-12 15:07:19 +11:00
Marc Durdin
46075e0f1e chore(windows): tweak symbol version tagging 2020-11-11 10:47:54 +11:00
Marc Durdin
79cd83e105 chore(windows): fixup makefiles 2020-11-11 10:33:18 +11:00
Marc Durdin
fccff427b4 chore(windows): make symbols target optional 2020-11-11 10:33:17 +11:00
Marc Durdin
00a9744253 chore(windows): symbol server support, initial steps 2020-11-11 10:33:16 +11:00
Marc Durdin
fef2f05144 fix(windows): sporadic 8087 control word corruption
This replaces vectored exception handler code which fixed up the 8087 CW
with a thread-safe version of Set8087CW that avoids the global
variable Default8087CW. We would get occasional situations where
exceptions were raised on 2 threads simultaneously, which could lead to a
race where the first thread set Default8087CW to $1340, and then the second
thread would read that and think that is the default to keep. We want to
avoid touching Default8087CW altogether here.

See also https://stackoverflow.com/a/39684636/1836776 and RSP-13643.
2020-11-09 16:14:11 +11:00
Marc Durdin
60abfdf1df fix(developer): Remove IE dependency from Developer Setup
Fixes #3832.

Removes the now-unneeded Internet Explorer dependency from Developer
Setup, and corresponding strings (plus a couple of other unused
strings).

I18n of these strings is a future project.
2020-11-08 14:00:49 +11:00
Marc Durdin
af07e236a0
Merge pull request #3829 from keymanapp/fix/developer/3827-debug-default-font
fix(developer): debug window inherits editor font
2020-11-07 10:58:46 +11:00
Marc Durdin
3d977d9c92
Merge pull request #3816 from keymanapp/fix/developer/917-support-for-context-and-notany
fix(developer): support for notany() and context()
2020-11-07 10:50:52 +11:00
Marc Durdin
5deb799e33 chore: address review comments 2020-11-06 17:59:06 +11:00
Marc Durdin
3d1601ffe5 fix(windows): SizeOfImage header was wrong for dbg
Fixes #3831.

This fixes both issues reported in the bug (dproj changes ensure
separate .tds, and Makefile changes fix order of execution so that
dbg is generated after sentryprep's cleanup).
2020-11-06 17:36:56 +11:00
Marc Durdin
526164fbd4 fix(windows): detect 102nd key in keyboard import
The detection of the 102nd key is a heuristic - it will decide it is
present if it has a vk code and its corresponding unshifted character
is not the same as the backslash key. This matches the general pattern
for US vs European keyboards.
2020-11-06 08:15:21 +11:00
Marc Durdin
79f6910971 fix(windows): Import OSK wrong for European layouts
Fixes #3810.

Importing a Windows keyboard would not produce correct OSK for European
layouts because it was based on virtual key instead of scan code.
Mapping through the scan code back to "US" base layout resolves the
issue.

Note that there is a slight difference between Import Windows Keyboard
and Fill from Layout results, as deadkeys have slightly more information
in the Import process, and can display the base deadkey, whereas Fill
from Layout will result in a blank deadkey. This difference is by
design.
2020-11-06 07:49:10 +11:00
Marc Durdin
ef7d2bfb0e fix(developer): debug window inherits editor font
Fixes #3827.

The debugger was not inheriting the editor font -- this is a regression
from when we replaced TPlusMemo with Monaco editor.
2020-11-06 07:12:17 +11:00
Marc Durdin
fe986a2fda
Merge pull request #3818 from keymanapp/fix/developer/1584-incorrect-script-for-language
fix(developer): Incorrect script:language map
2020-11-05 13:11:09 +11:00
Marc Durdin
94a062f20a fix(developer): remove obsolete NRSIAllTags
Relates to #799.

Removes NRSIAllTags, alltags.txt, parser and utility units.

Also re-enables standardsdata.dpr unit test which needed some syntax
cleanup.
2020-11-04 18:41:17 +11:00
Marc Durdin
3c2857da51 fix(developer): Incorrect script:language map
Fixes #1584.

In the "Select BCP 47 Tag" dialog, when the user starts typing a
language tag, e.g. "hi" for Hindi, the "h" would match "ha" for Hausa,
and set the script to "Latn". When the "i" was then typed, the script
box would not be cleared, giving an incorrect result of "hi-Latn"
instead of just plain "hi".

The earlier issue of "yo-Brai" has already been resolved.
2020-11-04 15:01:21 +11:00
Marc Durdin
d8e70bea77 fix(developer): support for notany() and context()
This is part 1 of 2 of a fix for #917. This adds in version 14.0
targeting and a new function `KNO` which is used in one specific place:
when a context() statement references a notany() statement. This
minimizes any risk in this change because existing supported patterns
should compile identically.

If the compiler finds this pattern, it will enforce 14.0 minimum version
for web targets.
2020-11-04 13:49:48 +11:00
Marc Durdin
3be518ebd8
Merge pull request #3804 from keymanapp/fix/windows/3797-task-create-failure
fix(windows): Handle failure on task creation
2020-10-30 17:39:00 +11:00
Marc Durdin
fd5845a912
Merge pull request #3805 from keymanapp/fix/windows/3801-crash-installing-malformed-package
fix(windows): crash installing package with a race
2020-10-30 17:31:23 +11:00
Marc Durdin
9904ec5396
Merge pull request #3800 from keymanapp/fix/windows/3725-3783-keyboard-menu-sync
fix(windows): keyboard menu could get out of sync
2020-10-30 17:23:28 +11:00
Marc Durdin
1fac72cceb
Merge pull request #3799 from keymanapp/fix/windows/3798-profile-disable-enable-incorrect-langid
fix(windows): disabling/enabling a profile could have wrong association
2020-10-30 17:23:01 +11:00
Marc Durdin
38932b7173 chore(windows): address review issues 2020-10-30 17:05:57 +11:00
Marc Durdin
76f77857c5 fix(windows): crash installing package with a race
Fixes #3801.
Fixes #3802.
Fixes KEYMAN-WINDOWS-5M.
Fixes KEYMAN-WINDOWS-5N.

This is a two-part fix for Keyman Configuration where it appears there
was a race with creating a temporary file, and which caused a cascading
exception.

The first part resolves the race; the second part (in
UfrmInstallKeyboard.pas) adds a little extra robustness (probably not
totally necessary).
2020-10-30 16:52:17 +11:00
Marc Durdin
0aaea62b1c fix(windows): Handle failure on task creation
Fixes #3797.
Fixes KEYMAN-WINDOWS-5H.

Report unexpected errors creating or deleting scheduled task, and ignore
expected errors better, handling a potential race condition where two
processes both attempt to create a folder at the same time.

Note that creating the task should not be a race because we use the
`TASK_CREATE_OR_UPDATE` flag.
2020-10-30 15:47:43 +11:00
Marc Durdin
baff142d8b
Merge pull request #3793 from keymanapp/fix/windows/3689-cleanup-setup-action-list
fix(windows): cleanup setup action list
2020-10-30 14:27:31 +11:00
Marc Durdin
66b6baf223
Merge pull request #3792 from keymanapp/fix/windows/3689-bootstrap-progress
fix(windows): show bootstrap progress in setup
2020-10-30 14:26:56 +11:00
Marc Durdin
71d42b2580
Merge pull request #3794 from keymanapp/fix/windows/3689-install-location-choice
fix(windows): setup now allows choice of source
2020-10-30 14:26:32 +11:00
Marc Durdin
99e44d030a fix(windows): keyboard menu could get out of sync
Fixes #3725.
Fixed #3783.

In some situations, the keyboard menu would either display empty or
would not refresh to get all installed keyboards.
2020-10-30 14:22:20 +11:00
Marc Durdin
5a4287a68d fix(windows): disabling/enabling a profile could have wrong association
Transient language profiles would get the wrong language association
when they were disabled and re-enabled.

Fixes #3798.
2020-10-30 14:20:00 +11:00