spiegel-keyman/windows/src/engine
Marc Durdin a00eb2c91a fix(windows): fallback to filename if &name not set
Fixes #5683.

If `store(&name)` is missing from a keyboard, then fallback to the
filename of the keyboard (sans extension). This fixes a regression in
14.0 keyboard registration.

I opted not to make this change in kmxfile but rather in places which
use it in the Keyman Engine COM API, because I wanted kmxfile to remain
truthful about all details of what it is reading from the file.

Given that the COM API will now never return an empty string for the
name of the keyboard, there are  mitigations for this in Keyman
Configuration which are unnecessary, but it is not harmful for them to
remain there.

Will cherry-pick to stable-14.0.
2021-09-14 08:24:17 +10:00
..
inst chore(windows): remove backup build step 2021-07-07 08:09:26 +10:00
keyman chore(windows): remove backup build step 2021-07-07 08:09:26 +10:00
keyman32 chore(windows): split keyman64 header to keymanengine 2021-07-29 21:06:07 +10:00
keyman64 chore(windows): split keyman64 header to keymanengine 2021-07-29 21:06:07 +10:00
keymanmc chore(windows): remove backup build step 2021-07-07 08:09:26 +10:00
keymanx64 chore(windows): remove backup build step 2021-07-07 08:09:26 +10:00
kmcomapi fix(windows): fallback to filename if &name not set 2021-09-14 08:24:17 +10:00
kmrefresh chore(windows): remove backup build step 2021-07-07 08:09:26 +10:00
kmtip chore(windows): remove backup build step 2021-07-07 08:09:26 +10:00
mcompile chore(windows): remove backup build step 2021-07-07 08:09:26 +10:00
tsysinfo fix(windows): tsysinfo format grid correctly 2021-08-05 16:20:20 +10:00
tsysinfox64 chore(windows): remove backup build step 2021-07-07 08:09:26 +10:00
xml/osk Remove xml/touch dead code for Windows 2017-09-25 13:11:29 +07:00
.gitignore chore(windows): add engine test framework 2021-06-23 11:48:42 +10:00
engine.groupproj chore(windows): make build paths consistent 2021-07-01 07:38:00 +10:00
engine.sln chore: remove debug-tests configurations 2021-06-23 11:51:15 +10:00
Makefile chore(windows): fixup engine makefile 2021-03-15 10:18:05 +11:00
README.md docs(windows): Apply suggestions from code review 2021-05-25 08:08:13 +10:00
version.in refactor(windows): Use 14.0-style versioning 2020-03-18 17:25:39 +11:00

Keyman Engine for Windows

There are a number of build artifacts that make up the Keyman Engine. This is a brief description of each artifact's purpose.

inst - keymanengine.msm

The installation merge module database for the Keyman Engine.

keyman - keyman.exe

Host application for the Keyman Engine. Shows the Keyman icon, Keyman menu, OSK, and handles language switching etc, as well as running the windows hooks to capture and translate keystrokes.

keymanx64 - keymanx64.exe

64-bit version of keyman.exe. All UI is in keyman.exe, so this is a thin wrapper around the keyman32 build.

kmcomapi - kmcomapi.dll | kmcomapi.x64.dll

This is the public COM API library, used by keyman.exe, kmshell.exe, and various other Keyman and 3rd party programs.

kmrefresh - kmrefresh.x86.exe & kmrefresh.x64.exe

A helper app to refresh Windows language settings, due to a bug in Windows; read ../kmrefresh/kmrefresh.cpp for details.

kmtip - kmtip.dll | kmtip64.dll

Implementation of a Text Service for the Text Services Framework (TSF). This implementation is named Keyman TIP. Architecturally it sits between the TSF Manager and Keyman.exe

mcompile - mcompile.exe

A tool to recompile keyboard layouts after install to map to various European Latin script keyboard layouts

tsysinfo - tsysinfo.exe & tsysinfox64.exe

Diagnostics