Commit graph

994 commits

Author SHA1 Message Date
Marc Durdin
32337e0087
Merge pull request #6030 from keymanapp/chore/windows/build-without-delphi
chore(windows): build without delphi ✈
2021-12-11 14:39:47 +11:00
Marc Durdin
ba8c6a165a
Merge pull request #6022 from keymanapp/chore/windows/no-more-mkver
chore(windows): replace mkver with mkver.sh ✈
2021-12-11 14:38:02 +11:00
Marc Durdin
2f19660db1
Merge pull request #6020 from keymanapp/chore/windows/make-to-nmake
chore(windows): move from Borland make to nmake ✈
2021-12-11 14:37:44 +11:00
Marc Durdin
92619336d0
Merge pull request #6019 from keymanapp/chore/windows/version-rc-macros
chore(windows): version.rc use macros instead of mkver ✈
2021-12-11 14:37:35 +11:00
Marc Durdin
988fec305c chore(windows): enable build without Delphi installed
This makes it possible to run `set NODELPHI=1`, `nmake build` and then
only non-Delphi projects will be built.
2021-12-10 00:10:54 +11:00
Marc Durdin
b4e6ceea25 chore: fixup additional version.rc 2021-12-09 06:16:25 +01:00
Marc Durdin
5ab9574112
Merge pull request #5906 from keymanapp/fix/web/5779-font-scaling-in-osk
fix(web): font size was not consistently set
2021-12-08 19:42:11 +11:00
Marc Durdin
c9dc10cc33 chore(windows): replace mkver with mkver.sh 2021-12-08 07:10:29 +01:00
Marc Durdin
261fae7edd chore(windows): fixup devsetup makefile whitespace 2021-12-07 19:31:00 +01:00
Marc Durdin
dee896b4c6 chore(windows): move from Borland make to nmake
While it may be smarter to move to a different build system altogether,
it is also a *lot* more work. This was a fairly minor syntax refresh to
get nmake working with our existing Makefile system. This is now no
longer compatible with Borland make, so you will need to use `nmake` to
build.

The presence of NMAKE.md informs builds systems that nmake should be
used instead of make.
2021-12-06 12:47:31 +04:00
Marc Durdin
bf65ecf82b chore(windows): path fixes for version.rc includes 2021-12-05 17:24:28 +11:00
Marc Durdin
e00ff063c8 chore(windows): version.rc use macros instead of mkver 2021-12-05 17:12:56 +11:00
Marc Durdin
bf42bc4141
Merge pull request #5972 from keymanapp/fix/developer/kmcomp-build-js-message
fix(developer): building kmw keyboard had wrong message callback signature
2021-12-03 08:47:46 +11:00
Marc Durdin
4b3405fef9 fix(developer): debugger crash with empty group
As the array length properties are unsigned integers, taking -1 from
them resulted in an integer overflow when the array was empty. A gotcha
with Delphi-style for loops!
2021-12-02 05:12:52 +11:00
Marc Durdin
e98930dedb
Merge branch 'master' into fix/web/5779-font-scaling-in-osk 2021-11-29 09:12:15 +11:00
Marc Durdin
b930d8199a chore(developer): tweak language metadata message
Relates to https://community.software.sil.org/t/why-does-the-details-tab-in-keyman-developer-still-refer-to-keyman-10/5612/3
2021-11-29 08:27:21 +11:00
Marc Durdin
d4186b5093
Merge pull request #5971 from keymanapp/chore/developer/move-kcframe
chore(developer): move kcframe into its own folder
2021-11-29 06:38:39 +11:00
Marc Durdin
94cfbae33d
Merge pull request #5923 from keymanapp/fix/developer/5905-debugger-render-on-touch-devices
fix(developer): render OSK nicely on touch devices
2021-11-29 06:37:15 +11:00
Marc Durdin
9fc9d9391e fix(developer): building kmw keyboard had wrong message callback signature
Picked up during #5963 development.

If you ran `kmcomp <file.kmn> <out.js>`, compiler messages were passed
to a function with an incorrect signature, resulting in an exception.
This was a mode that was not widely used, which is why we haven't
picked it up earlier.
2021-11-25 14:37:47 +11:00
Marc Durdin
ac30b280ae chore(developer): move kcframe into its own folder 2021-11-25 14:35:51 +11:00
Marc Durdin
9259ba5827 fix(developer): move web osk beneath text area
Fixes #5926.

This gives space for the popups to appear, even if they are large.
2021-11-18 15:00:44 +11:00
Marc Durdin
68135b9a5e fix(developer): use correct tike icon
Fixes #5924.

I'm not sure when this happened. But it should be right now.
2021-11-17 16:48:42 +11:00
Marc Durdin
5789d39deb fix(developer): render osk nicely on touch devices
Fixes #5905.

Touch devices now use a touch keyboard only in the web debugger.
2021-11-17 15:46:04 +11:00
Marc Durdin
9da4ffa77a fix(web): font size was not consistently set
Fixes #5779.
Fixes #5731 (I believe mitigation is sufficient to close this issue).

A variety of interrelated font and font size display issues resolved:
1. KVK font was not applied early enough for size calculations, which
   meant that we were calculating font scaling per key based on a
   default font when transforming from the KVK data for desktop devices
   (defaultLayout.ts)
2. Font scaling for non-default layers was calculated when elements were
   not visible and had no size information, giving incorrect values. To
   resolve this, font scaling is now calculated when a layer is made
   visible, which had performance impacts; resolved by reducing
   unnecessary `layer.refreshLayout()` calls; see performance point 1
   below (oskView.ts:layerChangeHandler())
3. `getViewportScale()` would return an incorrect scaled value when
   emulating touch devices on a desktop browser (kmwutils.ts)
4. After switching keyboards, the device-specific scaling factor was not
   maintained (oskView.ts:refreshLayout())

Related performance improvements:
1. Multiple calls to `layer.refreshLayout()` in `refreshLayout()` have
   been eliminated, and only the currently visible layer is now
   refreshed. This dramatically reduces the number of calls to
   `getIdealFontSize()` which was the primary concern of #5731.
   (visualKeyboards.ts)
2. Unnecessary use of `innerHTML` replaced with `innerText`
   (oskBaseKey.ts)

Minor Keyman Developer performance improvement:
1. The web debugger no longer recalculates the OSK twice (test.js)
2021-11-15 10:08:18 +11:00
Marc Durdin
a25b9cd8eb
Merge pull request #5894 from keymanapp/feat/developer/2858-u_xxxx_yyyy
feat(developer): support for U_xxxx_yyyy
2021-11-14 15:47:55 +11:00
Marc Durdin
b9c492a66b feat(developer): validate .kps files during compile
Fixes #5464.

The keyboards repository already has code to validate .xsd files, using
xmllint. This adds the same functionality directly into kmcomp and TIKE.
2021-11-11 14:41:04 +11:00
Marc Durdin
33a2e230f6 chore(developer): enforce file versions for feature 2021-11-11 13:26:56 +11:00
Marc Durdin
66be206d96 feat(developer): support for U_xxxx_yyyy 2021-11-11 13:08:39 +11:00
Marc Durdin
954717c0b2
Merge pull request #5776 from keymanapp/fix/developer/5718-handle-shortcut-keys-in-debugger
fix(developer): handle shortcut keys in debugger
2021-11-11 07:21:54 +11:00
Marc Durdin
024a36da9f
Merge pull request #5787 from keymanapp/chore/sentry-io
chore: sentry.io dsn 👮‍♂️
2021-10-06 07:32:43 +11:00
Marc Durdin
0cf4a3c512
Merge pull request #5723 from keymanapp/feat/developer/touch-layout-testing
feat(developer): touch layout testing 🎩
2021-10-05 17:40:26 +11:00
Marc Durdin
3219b44624 chore: sentry.io dsn 2021-10-04 15:01:36 +11:00
Marc Durdin
6882e97ae0
Merge pull request #5749 from keymanapp/fix/web/2924-variable-stores-and-fat-fingering
fix(web): support variable stores with predictive text
2021-10-02 11:12:34 +10:00
rc-swag
96da136a95
Merge pull request #5443 from keymanapp/feat/windows/keyman-core-integration-2
feat(windows): Keyman Core integration 🥑
2021-09-30 10:54:17 +10:00
Marc Durdin
3a53d662d2 fix(developer): handle shortcut keys in debugger
Fixes #5718.

The debugger memo control will now filter out action shortcut keys such
as Ctrl+A, Ctrl+O, so that the keyboard being debugged can get the first
chance to look at them and handle them if it wishes.

If the keyboard does not handle the keystroke, then a set of editor
shortcut keys will be handled by the debugger, namely:

* Ctrl+A - select all
* Ctrl+C - copy
* Ctrl+V - paste
* Ctrl+X - cut
* Ctrl+Z - undo

Note that undo semantics are a little weird with the debugger, but that
is not related to this fix. By a little weird, I mean that characters
emitted by the keyboard being debugged do not flow into the undo buffer,
so undo often has no effect. I am not planning to fix this idiosyncrasy
at this time.
2021-09-30 07:51:07 +10:00
Marc Durdin
1b16a0d957
Merge pull request #5746 from keymanapp/fix/developer/5702-shift-6-ampersand
fix(developer): move ampersand to shift+7 on touch
2021-09-30 06:09:24 +10:00
Marc Durdin
c0ac074618
Merge pull request #5720 from keymanapp/fix/developer/5327-touch-remove-empty-rows
fix(developer): remove empty touch rows on save
2021-09-29 07:38:31 +10:00
rc-swag
b71fde66f9
Merge branch 'master' into feat/windows/keyman-core-integration-2 2021-09-27 21:40:22 +10:00
Marc Durdin
a65b55e1b5 fix(web): support variable stores with predictive text
Fixes #2924.

When a keyboard includes variable stores, predictive text fat-fingering
tests will no longer affect the variable store values.
2021-09-27 06:54:24 +10:00
Marc Durdin
d4b9f18106 fix(developer): move ampersand to shift+7 on touch
Fixes #5702.

On the phone layout for two templates, ampersand (`&`) was on Shift+6
instead of on Shift+7.
2021-09-24 14:01:24 +10:00
Marc Durdin
eee06e18be chore(developer): cleanup links and display attributes 2021-09-23 14:03:39 +10:00
Marc Durdin
896b922865 chore(developer): refactoring - minor 2021-09-23 13:51:54 +10:00
Marc Durdin
05cefaf9f8 feat(developer): improve look and feel of test view 2021-09-22 11:02:54 +10:00
Marc Durdin
6b39383743 feat(developer): touch layout testing
Adds support for testing touch layouts without requiring use of device
emulation. Uses new InlinedOSKView.

Does not yet add a view within Keyman Developer; this will come shortly.
2021-09-22 11:02:53 +10:00
Marc Durdin
6b8d941f9e chore: add KeymanDeveloperPaths to kmcomp project 2021-09-21 06:45:26 +10:00
Marc Durdin
e6190ee05f fix(developer): run kmlmc from Keyman source path
Makes it possible to run the kmlmc.cmd compiler wrapper script from
Keyman Developer while debugging from source.

Adds a new class `TKeymanDeveloperPaths` which is similar to
`TKeymanPaths`, to provide a future single location for all Keyman
Developer path-related functions. There are a number scattered through
the source at present, e.g. in `RedistFiles.pas`, so this is just a
starting point.
2021-09-21 06:25:35 +10:00
Marc Durdin
ffd66e32e1
Merge pull request #5697 from keymanapp/fix/developer/5013-debugger-ralt-not-working
fix(developer): support chiral modifiers in debugger 🐞
2021-09-20 16:12:47 +10:00
Marc Durdin
41a9e8c26d
Merge pull request #5696 from keymanapp/feat/developer/5695-debugger-track-set-option-value
feat(developer): track changes to option values better in debugger 🐞
2021-09-20 16:12:39 +10:00
Marc Durdin
6de2238a25 fix(developer): remove empty touch rows on save
Fixes #5327.
2021-09-20 09:15:09 +10:00
Marc Durdin
838693d132
Merge pull request #5647 from keymanapp/feat/developer/debugger-keyboard-options
feat(developer): Debugger keyboard options 🐞
2021-09-17 10:11:29 +10:00