Commit graph

3302 commits

Author SHA1 Message Date
Marc Durdin
60390ed08b fix(windows): create Keyman/Diag folder in redirected profile
Fixes #6221.

If Keyman is being installed under the SYSTEM profile, e.g. when using
tools such as SCCM or Intune, then the installer runs with a redirected
folder for %LocalAppData%, under C:\Windows\SysWow64\config, but is
given the name C:\Windows\System32\config\....

Keyman Setup then creates %LocalAppData%\Keyman\Diag, which it thinks is
in C:\Windows\System32\config\... But in reality it is in SysWow64\...
Keyman Setup passes a file under this folder to Windows Installer,
running as 64 bit, which immediately falls over because the path does
not exist to it, in the real System32\config folder.

This patch disables redirection temporarily just to create the folder
under both 32 and 64 bit versions of the profile. It has no effect on
normal user accounts (apart from verifying that the folder is present
twice rather than once).
2022-02-09 15:03:38 +11:00
Ross
09d572b8fd fix(windows): remove extra blank line 2022-02-08 14:48:41 +10:00
Ross
c3a30d184c fix(windows): add flag to track core process event
For the TSF applications in most cases there is no test parse
with updatable=false. In these cases we need to call the
core process event function and process the actions in the
one call. A bool flag has been added to track if the core process
event has been called for the current keystroke
2022-02-08 12:19:28 +10:00
Marc Durdin
389f89d233
Merge branch 'master' into fix/developer/remove-engine-msm 2022-01-31 06:43:02 +11:00
Marc Durdin
cfe778e940 fix(developer): uninstall actions would never run
The uninstall actions never ran because the working directory given was
invalid. Also fixed: the success/failure message is presented by the
caller rather than down in the depths of the call.
2022-01-31 06:40:49 +11:00
Marc Durdin
b428a8ab97 chore(developer): Merge branch 'master' into feat/developer/node-based-debugger-server 2022-01-28 16:07:19 +11:00
Marc Durdin
64fbded896 chore: address review comments 2022-01-28 15:48:10 +11:00
Marc Durdin
180fa94141
Merge pull request #6164 from keymanapp/chore/windows/testhost-readme
chore(windows): testhost readme
2022-01-27 11:00:34 +11:00
rc-swag
229ba429c2
Merge pull request #5936 from keymanapp/feat/windows/imx-support-common-core
feat(windows): Keyman Core Integration - Support for IMX DLLs 🥑
2022-01-27 09:38:33 +10:00
Marc Durdin
a1c6ee1fe8 chore(developer): fix issues in package versioning
The package version should always be 7.0 for keyboard versions up to and
including 14.0, because Keyman for Window 14 and earlier only accepted
packages with version number 7.0.

Also, we never stream MinKeymanVersion for each keyboard because that
should be calculated at compile time to ensure that we get correct
version which may otherwise be out of date.
2022-01-27 08:58:26 +11:00
Marc Durdin
a8a0c9e1dc fix(developer): remove kmcomapi references 2022-01-27 08:16:57 +11:00
Marc Durdin
e79b6eb8be chore(windows): testhost readme 2022-01-27 08:01:22 +11:00
Marc Durdin
7a7a33216e
Merge pull request #6141 from keymanapp/fix/developer/handle-core-failure-to-load
fix(developer): handle Core failure to load
2022-01-27 06:40:59 +11:00
Ross
78b8ffcdc2 chore(windows): Merge branch 'master' into feat/windows/imx-support-common-core 2022-01-25 16:02:43 +10:00
Marc Durdin
dad601f523
Merge pull request #6151 from keymanapp/fix/developer/6149/prevent-crash-on-dblclicked-file-build
fix(developer): prevent crash on build dblclicked file
2022-01-25 17:02:34 +11:00
Marc Durdin
57b3bd70d1 feat(windows): handle key output in testhost
In order to avoid the test host interfering too badly with the debugger,
we will bypass SendInput and instead post all input to the local edit
window. This can result in out-of-sequence input for rapid typing, but
for a test host this is not important -- it's better that the input
doesn't end up in the debugger window due to focus changes!
2022-01-25 16:50:36 +11:00
Ross
61c64c373b chore(windows): Merge branch 'master' into feat/windows/imx-support-common-core 2022-01-25 15:41:36 +10:00
Ross
1c3cd0ae1f feat(windows): Bit wise and modifier flags for core process event
The windows engine shift modifier flag needs to only pass
the K_MODIFIERFLAGS so do a bit wise and to clear the other flags
2022-01-25 14:59:19 +10:00
Marc Durdin
06bb464153 feat(windows): testhost project for debugging keyman32
Scratching an itch. It's very painful to debug Keyman Core on Windows.

This helps a little. It allows you to step through the code without
loading keyman32.dll into every process. It's not perfect, because when
actions are sent, they tend to land in the debugger because SendInput
does not care about the active window! However, if you don't care
about that too much (or if you are willing to try a remote debug setup),
then this should really simplify debugging.
2022-01-25 13:07:16 +11:00
Ross
949cb7da40 chore(windows): Merge branch 'master' into feat/windows/6099-emit-keystrokes-from-imx 2022-01-24 16:05:48 +10:00
Marc Durdin
af6f01f25d fix(developer): prevent crash on build dblclicked file
Fixes #6149.
2022-01-24 16:35:49 +11:00
Marc Durdin
633d6d7142 fix(developer): update test suite 2022-01-24 11:07:27 +11:00
Marc Durdin
f1f4d7bd80 fix(developer): compile package fileVersion from keyboard FileVersion
Relates to #5992 (part 1 of 2 - part 2 updates the kmn min version in
the compiler).

Updates package fileVersion property to be minimum keyboard version, to
avoid issues with app crashing if functionality is not supported.

As far as I can tell, only Keyman for Windows currently checks the
package fileVersion.

This could be quite nasty, except that the online keyboard repository
build process also extracts the min Keyman version from the keyboard
.kmx and .js, and records it in the .keyboard_info, preventing older
versions of Keyman from seeing unsupported keyboards in the cloud
repository.

Thus, the only gap is for peer distributed keyboards. So we should fix
this gap but it is less urgent than it might otherwise be.
2022-01-24 10:35:32 +11:00
Marc Durdin
4343834e42 chore(developer): remove mergeref for keymanengine 2022-01-24 08:50:48 +11:00
Marc Durdin
59c64c9ad0 fix(developer): remove keymanengine.msm
As of Keyman Developer 15, we no longer need to install
keymanengine.msm, so it should be able to co-exist with any version of
Keyman for Windows. Remove the .msm to make this so!
2022-01-24 07:32:47 +11:00
Marc Durdin
82a8bd3242 fix(developer): handle Core failure to load
If Core fails to load when starting the debugger, avoid a crash and
report details of the error back to the user.
2022-01-24 07:17:52 +11:00
Marc Durdin
59c1216a85 chore(developer): ensure tests run when building Server 2022-01-24 07:17:01 +11:00
Ross
9dd342eace feat(windows): Turn imx synthesised actions to emti keystroke action 2022-01-21 14:12:00 +10:00
Marc Durdin
9c5b126956 chore(developer): Merge branch 'master' into feat/developer/node-based-debugger-server 2022-01-21 14:45:30 +11:00
Ross
8c8859bcf1 feat(windows): add process_queued_actions 2022-01-20 14:33:00 +10:00
rc-swag
4ca65e4fdb
feat(windows): commit suggestions github
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-01-20 09:43:22 +10:00
Ross
513e2def62 feat(windows): remove debug logging 2022-01-19 14:52:29 +10:00
Ross
1b624c3d56 feat(windows): Address Review comments 2022-01-19 13:47:49 +10:00
Marc Durdin
4dd5904bca fix(developer): refresh web host on compile 2022-01-19 11:00:44 +11:00
rc-swag
87e34147e6
feat(windows): apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-01-18 09:25:03 +10:00
Darcy Wong
24364dc5af
Merge pull request #6048 from keymanapp/chore/common/crowdin-ckl
chore(common): Check in crowdin strings for Kibaku 📜
2022-01-17 10:28:54 +07:00
Marc Durdin
a3d5a4f9be
Merge pull request #5988 from keymanapp/feat/developer/3620-developer-ide-support
feat(developer): support for Caps Lock layer 🕊
2022-01-17 12:13:53 +11:00
Marc Durdin
0c0bb420b5
Merge pull request #5963 from keymanapp/feat/web/3621-newcontext-group
feat(web): Start of Sentence support - part 1 🕊
2022-01-17 12:04:29 +11:00
Darcy Wong
c5178649e6
Merge pull request #6050 from keymanapp/chore/common/crowdin-hia
chore(common): Check in crowdin strings for Waha 📜
2022-01-14 12:48:41 +07:00
Darcy Wong
9eb2916d51
Merge pull request #6049 from keymanapp/chore/common/crowdin-mrt
chore(common): Check in crowdin strings for Marghi 📜
2022-01-13 15:04:34 +07:00
Ross
02b2379a1a feat(windows): tweak comments 2022-01-13 14:07:53 +10:00
Ross
ee87f0a33e feat(windows): remove old comments 2022-01-13 14:00:24 +10:00
Ross
2e0b7691e9 feat(windows): clarity changes to ContextItemToAppContext 2022-01-13 14:00:23 +10:00
Ross
ca8108c642 feat(windows): remove extra logging add comments 2022-01-13 14:00:13 +10:00
Ross
7efb4b1756 feat(windows): add wm_kewm_keymanim_close for core
This commit adds call to the core keyboard processor
on wm_keymanim_close event. To get the latest actions.
It also changes the core to allow QIT BACK even when
the context is empty.
2022-01-13 13:59:43 +10:00
Ross
f1f1d4e9b7 feat(windows): fix compile error 2022-01-13 13:59:40 +10:00
Ross
a72697423a feat(windows): add logging to be removed later 2022-01-13 13:59:39 +10:00
Ross
a078c2e577 feat(windows): add register callback 2022-01-13 13:59:31 +10:00
Ross
f2c52803eb feat(windows): Wip mod kmcontext 2022-01-13 13:56:01 +10:00
Ross
9d320c6bd8 feat(windows): core queue_action_items unit test 2022-01-13 13:55:58 +10:00