- Mar 05, 2021
-
-
Darcy Wong authored
* List available display languages * Add KMEA breaking changes
-
Joshua Horton authored
fix(ios): support for direct downloads of .kmp packages from within the in-app browser
-
Marc Durdin authored
fix(developer): tidy up expansions tests
-
Marc Durdin authored
fix(windows): PreservedKeyMap::MapUSCharToVK line order bug
-
Darcy Wong authored
fix(android): Localize Toast notifications
-
Darcy Wong authored
-
Marc Durdin authored
feat(developer): &CasedKeys system store
-
Darcy Wong authored
fix(android/app): Fix welcome.htm responsiveness
-
Marc Durdin authored
I discovered this while working on #4586. The code in question was updating `*puKey` and then trying to dereference the array on the basis of its new value, which (a) would give the wrong result, and (b) could be reading off the end of the array (although not crashing it seems), e.g. for `"` -> `VK_QUOTE`, which has a value of `0xDE`. I am guessing that the reason we have not seen any bug reports on this is that the keystroke handler falls back to an alternate code path, so in the vast majority of cases, keyboards would continue to work correctly. Furthermore, the test was just for truthiness of the `BOOL` so probably at least 50% of the time we'd have been okay anyway. Or something. Anyway, I reckon this is better.
-
Marc Durdin authored
-
Keyman Server authored
auto: increment beta version to 14.0.253
-
Keyman Build Agent authored
-
- Mar 04, 2021
-
-
Eberhard Beilharz authored
chore(linux): Don't report to Sentry in dev environment
-
Eberhard Beilharz authored
fix(linux): Improve version number
-
Joshua Horton authored
fix(common/models): fixes application of suggestions immediately after a backspace
-
Darcy Wong authored
-
Darcy Wong authored
-
Darcy Wong authored
Cleaning up unused string failed_to_access_downloaded_file
-
Joshua Horton authored
fix(web): fixes lack of respect for underlying-key display settings
-
jahorton authored
-
jahorton authored
-
jahorton authored
-
Marc Durdin authored
feat(developer): Range expansions
-
Marc Durdin authored
feat(developer): Add different Open Containing Folder buttons
-
Marc Durdin authored
fix(developer): Support all fonts in Keyboard Fonts dialog
-
Marc Durdin authored
fix(developer): improve CEF location search stability
-
Joshua Horton authored
feat(ios): enables de, fr, and km localizations
-
jahorton authored
-
jahorton authored
-
jahorton authored
-
Marc Durdin authored
Fixes #2241. The `&CasedKeys` system store is a compiler feature that reduces the repetitive nature of keyboard rules for `CAPS` and `NCAPS`. The `&CasedKeys` system store defines a list of virtual keys for which 'normal' Caps Lock rules apply. This store has no default value, for backward compatibility. Once this store is defined, then you can define just the unshifted and shifted versions of a rule, and Keyman Developer will synthesize the `CAPS` and `NCAPS` versions of the rule. For example, you may have the following rules: ``` store(&CasedKeys) [K_A] + [K_A] > 'α' + [SHIFT K_A] > 'Α' ``` These would be replaced by the compiler with: ``` store(&CasedKeys) [K_A] + [NCAPS K_A] > 'α' + [SHIFT CAPS K_A] > 'α' + [CAPS K_A] > 'Α' + [SHIFT NCAPS K_A] > 'Α' ``` You can also use this functionality with characters in the key part of the rule: ``` store(&CasedKeys) 'a'..'c' + 'a' > 'α' + 'A' > 'Α' ``` and the compiled expansion would be similar: ``` store(&CasedKeys) [K_A] [K_B] [K_C] + [NCAPS K_A] > 'α' + [SHIFT CAPS K_A] > 'α' + [CAPS K_A] > 'Α' + [SHIFT NCAPS K_A] > 'Α' ``` This feature is backwardly compatible with Keyman 6.0, as it is entirely implemented in the compiler. This feature is not compatible with mnemonic layouts, and the keys defined in the `&CasedKeys` store must be the unshifted base keys as found on a US English keyboard, or you can use ISO9995 identifiers if you prefer. If you define a rule where you specify either `NCAPS` or `CAPS`, for a key found in the store, then no change will be made to that rule. You can also continue to define rules which use `NCAPS` or `CAPS` for keys not found in the store. As a side-benefit, this allows the visual designer to be used and support Caps Lock, although at this stage, the `&CasedKeys` store is not surfaced in the visual designer.
-
Joshua Horton authored
fix(ios): adds i18n for some error alerts
-
jahorton authored
-
jahorton authored
-
jahorton authored
-
Marc Durdin authored
-
Marc Durdin authored
-
Marc Durdin authored
Relates to #2241. Range expansions are a new language feature that reduce verbosity in Keyman Keyboard Language (.kmn) files by making it possible to collapse sequential ranges with a new `..` operator. It is envisioned that these will be used primarily in stores. Two kinds of expansions are available: character ranges, and virtual key ranges. The syntax is: ``` char '..' char vkey '..' vkey ``` Where the `char` terminator is a single normal character, and the `vkey` terminator is a single virtual key. `outs` is permissible for terminators but no other statement is allowed. Whitespace is per normal Keyman keyboard language syntax. Character ranges will replace the range with the set of characters between the terminators, based on the Unicode value of the terminators. Examples: ``` store(alphabet) 'a' .. 'z' store(alpha_not_bq) 'ac'..'pr'..'z' store(capitals) U+0041 .. U+005A ``` Virtual key ranges work in a similar fashion, but with virtual keys. The starting and terminating virtual key must have the same shift state. This will be most useful for character and numeric virtual keys, as the ranges are based on the numeric value of the virtual key as defined by Windows, not its position on the keyboard. Examples: ``` store(alphakeys) [K_A] .. [K_Z] store(numkeys) [K_0] .. [K_9] ``` Ranges must be positive, that is, you cannot use `'z' .. 'a'`. While this expansion is not expected to be very useful in rules, it is still permitted. `context()` and other offsets are calculated on the expanded form, not the collapsed form. Similarly, `any()`/`index()` offsets are calculated on the expanded form. 'a' .. 'z' > context(3) c this produces 'c', not 'z' Because ranges are expanded at compile time, ranges that are overly long will result in an error, so you cannot use, for example: ``` store(AllUnicode) U+0020 .. U+10FFFF ``` The precise maximum length of a range is dependent on the context where it is used. The changes are entirely compiler-based; no change is made to the .kmx file format or to the Keyman apps.
-
Eberhard Beilharz authored
This change modifies the reported version number for km-config: if km-config is installed from a debian package, the package version will be output as well, e.g.: `km-config version 14.0.252-beta (package version 14.0.252-1+bionic1)` Otherwise the output will be identical to before: `km-config version 14.0.252-beta-local`. This change also modifies the script that sets the version number so that builds on Jenkins are now detected in addition to TC. This fixes #4579.
-
Eberhard Beilharz authored
When the environment variable KEYMAN_NOSENTRY is set we'll skip reporting to Sentry. This is helpful on development machines.
-