Commit graph

2243 commits

Author SHA1 Message Date
Marc Durdin
6b0058f5e7
Merge pull request #5595 from keymanapp/chore/developer/5013-debug-events-panel
chore(developer): hide debug events panel 🐞
2021-08-20 10:51:42 +10:00
Marc Durdin
1f4044c497
Merge pull request #5594 from keymanapp/fix/developer/5013-test-mode
fix(developer): get Test Mode working again 🐞
2021-08-20 10:51:32 +10:00
Marc Durdin
485c5d2ee7
Merge pull request #5593 from keymanapp/chore/developer/5013-remove-forcekeyboard
chore(developer): refactor forcekeyboard in debug 🐞
2021-08-20 10:51:23 +10:00
Marc Durdin
3456ec6a8b
Merge pull request #5592 from keymanapp/chore/developer/5013-deadkey-value-1-based
chore(developer): debug deadkey 1-based values 🐞
2021-08-20 10:51:16 +10:00
Marc Durdin
ab9db35c32
Merge pull request #5588 from keymanapp/fix/developer/5013-tidyup
fix(developer): debugger cleanup 🐞
2021-08-20 10:51:06 +10:00
Marc Durdin
623315ea18
Merge branch 'master' into fix/windows/4549-welcome-in-front 2021-08-19 06:33:20 +10:00
Marc Durdin
bb351a7d0b chore(developer): hide debug events panel
Relates to #5013.

Hide the debug events panel by default, and add
a Tools menu item to make it visible for dev purposes
(Ctrl+Shift+click on Tools menu to view).
2021-08-18 09:05:53 +10:00
Marc Durdin
9f0ba213aa fix(developer): null check 2021-08-18 08:31:00 +10:00
Marc Durdin
11043b62c9 fix(developer): get Test Mode working again
Relates to #5013.

This resolves the broken Test Mode with Keyman Core. Previously, Test
Mode just dumped the keyboard into Keyman for Windows, and let it do its
thing. Given that we no longer have the dependency on Keyman for
Windows, the Test window must use Keyman Core to process keystrokes, and
that means there are some differences in how Test Mode operates in 15.0:

* Behind the scenes, the Test mode is just the Debug mode with
  breakpoints and single step disabled, and the Debug Status window
  hidden
* Test mode requires debug information in the keyboard (see note below)
* You can always switch between Test and Debug mode
* Deadkeys are always shown in the debug window

Test Mode now requires debug information to be included in the keyboard
in order for deadkeys to be tracked correctly in the editor. While it
would be possible to remove the need for this, it does not add any
significant benefit to do so -- doing so would mean that the tester
would have less visibility into deadkeys, and complicate the Core
marker tracking in the debug window.

I considered removing Test Mode altogether, but it still feels like a
useful view for playing with a keyboard without all the debugging
paraphernalia cluttering the display. It's a little slower than full
native Keyman for Windows (aka the 14.0 Test Mode), because the debug
hooks are still running in the background, but it is quite usable.

Note the removal of `Application.ProcessMessages`. This resolves the
issue of keystrokes being swallowed by the debugger during
non-interactive debug runs, making rapid input work properly in both
Debug Mode and Test Mode.
2021-08-18 07:46:39 +10:00
Marc Durdin
77dc2ae749 chore(developer): refactor forcekeyboard in debug 2021-08-18 07:02:22 +10:00
Marc Durdin
db0f432b1c chore(developer): debug deadkey 1-based values 2021-08-18 06:24:27 +10:00
Marc Durdin
265d3e0b83 chore(developer): remove unused TDebugEventCursor 2021-08-17 19:13:43 +10:00
Marc Durdin
cbe99922eb fix(developer): debugger cleanup
Relates to #5013.

Before starting on new functionality in the debugger, I wanted to
cleanup a bunch of bits and pieces, including:

1. Correct handling of text selection and deletion
2. Refactor of character grid at bottom of debug window
3. Deadkey realignment after text changes
4. Correct tracking of cursor position between events
5. Handling a few destruction edge cases
2021-08-17 19:04:32 +10:00
Marc Durdin
d90f382499 fix(windows): handle restoring modal dialogs consistently
Fixes #5574.

When a user presses Win+M, Win+D, or clicks the desktop button on the
taskbar, all windows get minimized, even those that do not have the
WS_MINIMIZE flag. Delphi modal dialog forms are not expecting this, and
do not restore correctly later.

This scenario arises only when a form is created with a `nil` owner and
then `form.ShowModal` is called.

The fix was already implemented on Splash and HTML forms, but
differently; I have chosen to use the implementation from the Splash
form as it is simpler and seems to work correctly.
2021-08-17 06:31:31 +10:00
Marc Durdin
93cc5d45f2
Merge pull request #5513 from keymanapp/feat/developer/5013-keyman-core-debugger-part-1
feat(developer): debugger uses Keyman Core 🐞
2021-08-06 13:43:22 +10:00
Marc Durdin
3faa32b9cd chore(developer): address review comments 2021-08-06 12:49:21 +10:00
Marc Durdin
25f5315970
Merge pull request #5556 from keymanapp/fix/windows/tsysinfo-format-grid
fix(windows): tsysinfo format grid correctly
2021-08-06 07:52:07 +10:00
SabineSIL
b99e98e123
fix(Windows) bug 4833
keyboard installation prompt wordwrap
2021-08-05 21:03:10 +02:00
Marc Durdin
f223fe7780 fix(windows): Welcome should always show in front
Fixes #4549.

The Package Welcome dialog would not always show in front because its
owner could be `nil` in some circumstances.
2021-08-05 17:10:34 +10:00
Marc Durdin
39dbd09245 fix(windows): tsysinfo format grid correctly
Minor fix to make the module list format correctly with
chromium browser instead of mshtml, plus a tweak to build
copy xsl files as well to bin
2021-08-05 16:20:20 +10:00
Darcy Wong
4fc408fa90
Merge pull request #5486 from keymanapp/chore/crowdin-update-az
chore(ios,windows): Update crowdin strings for Azerbaijani
2021-08-05 07:51:55 +07:00
Marc Durdin
dbf47eeee3 chore(developer): fix debugkeyboard reference 2021-08-04 13:47:28 +10:00
Marc Durdin
142d0807a3 refactor(developer): move FDeadkeys back into frmDebug 2021-08-04 13:09:32 +10:00
Marc Durdin
4ed4aeebf6 refactor(developer): keyman core library path 2021-08-04 12:46:07 +10:00
Marc Durdin
63f8137005 refactor(developer): rename and move debugging.pas
Removes a lot of unused functions and one unit. Cleanup for debugging.
2021-08-04 09:44:56 +10:00
Marc Durdin
90c8252370 refactor(developer): visual keyboard import
Refactors visual keyboard import from kmx to use Keyman Core, and at the
same time removes any UI interactions or direct Windows dependencies
from the process.
2021-08-04 07:44:18 +10:00
Marc Durdin
c5eb0a4d3f feat(developer): refactoring debugging code 2021-08-03 17:06:31 +10:00
Marc Durdin
bdea4279f1 refactor(developer): debugger/core integration 2021-08-03 06:22:34 +10:00
Marc Durdin
ed73d5667b chore: add variable docs 2021-07-30 15:27:12 +10:00
Marc Durdin
5f2caba964 fix(developer): compiler use and match behavior for Web should be same as Core
Fixes #5440.

Currently, the behavior of `use()` and `match` for KeymanWeb compiled
keyboards is not identical to the Windows (or Core) behavior. The
example keyboard in #5440 generates 'foo' instead of 'abc' on web.

This fixes that by ensuring that `match` is not called when `use()` is
found in a group rule match.
2021-07-30 14:46:13 +10:00
rc-swag
1a91dce1f3
Merge pull request #5522 from keymanapp/chore/windows/refactor-keyman64-header
chore(windows): split keyman64 header to keymanengine
2021-07-30 09:55:35 +10:00
Ross
cb7d8dce1c chore(windows): fix comment indent keymanengine_h 2021-07-30 09:14:40 +10:00
Ross
905538414f chore(windows): split keyman64 header to keymanengine 2021-07-29 21:06:07 +10:00
Marc Durdin
9eab6f2814 chore(windows): fixup cef interfaces for CEF 90 2021-07-29 16:39:53 +10:00
Marc Durdin
ec9df7e238 feat(developer): debugger uses Keyman Core
Start of the refactor of the debugger to use Keyman Core. Basic events
work but there is a lot to tidy up yet.
2021-07-29 16:29:28 +10:00
Darcy Wong
8b54317b50 chore(windows): Update Azerbaijani language string 2021-07-29 10:35:44 +07:00
Marc Durdin
5d32a61a63 chore(windows): patches for Delphi 10.4
Updates Keyman for Windows and Keyman Developer sources so that they
build under Delphi 10.4. No validation has been performed to ensure that
there are no other issues. The intent here is to get a baseline build
working.

Note also IMSample.vcxproj which has its WinSDK version updated for
VS2019.
2021-07-27 16:57:40 +10:00
Darcy Wong
2949173391 chore(windows): Add another round of Azerbaijani updates 2021-07-26 10:09:31 +07:00
Darcy Wong
c906423392 chore(windows): Update crowdin strings for Azerbaijani 2021-07-24 06:24:18 +07:00
Marc Durdin
2f9d29905e
Merge pull request #5449 from keymanapp/chore/developer/fixup-devtime-paths
chore(developer): fixup devtime paths
2021-07-19 09:16:52 +10:00
Marc Durdin
4985212027 chore(developer): fixup paths for unit tests 2021-07-09 06:17:03 +10:00
Marc Durdin
45afbf6fec chore: add missing path to project 2021-07-08 17:07:41 +10:00
Marc Durdin
121410fd53 chore(developer): fixup devtime paths
After the path refactor, here are some assumed paths that needed fixing.
2021-07-08 15:08:01 +10:00
Marc Durdin
845d65e5e4 chore(windows): remove backup build step
We no longer need to backup debug files as they are saved to the symbol
store during a release build. This reduces the amount of storage
required for a release build and should speed up the build also.

Also fixes the broken build where backup had not been updated for the
new consistent build paths.
2021-07-07 08:09:26 +10:00
Marc Durdin
651932f1bb
Merge pull request #5405 from keymanapp/chore/windows/build-paths
chore(windows): make build paths consistent
2021-07-06 15:27:05 +10:00
Marc Durdin
4ba1e63c13 chore(windows): fix test paths 2021-07-01 14:03:41 +10:00
Marc Durdin
c4efe63108
Merge pull request #5403 from keymanapp/chore/developer/remove-initclasses
chore(developer): remove obsolete InitClasses
2021-07-01 11:57:29 +10:00
Marc Durdin
bc95ec98b4
Merge pull request #5391 from keymanapp/fix/developer/editor-commands
fix(developer): builder and editor commands were ignored
2021-07-01 11:57:19 +10:00
Marc Durdin
996d24fdb3 chore(windows): remove kmndebug ref from this branch 2021-07-01 11:42:33 +10:00
Marc Durdin
5246408ac0 chore(windows): make build paths consistent
More iterations on this yak shave.
2021-07-01 10:52:59 +10:00