spiegel-keyman/mac/KeymanEngine4Mac/KeymanEngine4Mac/KME
Marc Durdin a45145ae3d fix(mac): Caps processing was not consistent with core
Fixes #7632.

If Caps Lock was on, rules that did not specify Caps Lock state were
not matched, for example:

```
+ [K_SLASH] > 'foo'
```

The truth table for matches is:

Event    |    Rule     | Result
---------|-------------|-----------
NCAPS    |    0        | match
NCAPS    |    CAPS     | no match
NCAPS    |    NCAPS    | match
CAPS     |    0        | match
CAPS     |    CAPS     | match
CAPS     |    NCAPS    | no match

(Internally, Keyman for Mac currently maps 0 to NCAPS on the event for
simplicity.)

The fix is to ignore the Event Caps Lock state if the rule specifies
neither `CAPS` nor `NCAPS`. If the rule specifies either of these
state masks, then the Caps component of the state mask must match.
2022-11-23 09:25:11 +11:00
..
Categories fix(mac): Modifier keys were resetting cached context 2020-02-05 19:32:03 +11:00
OnScreenKeyboard restore OSK relative label height size to 0.45 2021-12-17 13:58:53 +07:00
Supporting Files [Mac] Initial check-in to open-source repo 2017-08-10 13:11:52 +07:00
KMBinaryFileFormat.h fix(mac): Caps processing was not consistent with core 2022-11-23 09:25:11 +11:00
KMCompGroup.h Added guards around all headers to prevent duplicate imports 2018-01-29 14:01:33 -05:00
KMCompGroup.m [Mac] Initial check-in to open-source repo 2017-08-10 13:11:52 +07:00
KMCompKey.h Added guards around all headers to prevent duplicate imports 2018-01-29 14:01:33 -05:00
KMCompKey.m [Mac] Initial check-in to open-source repo 2017-08-10 13:11:52 +07:00
KMCompStore.h add support for if(), set(), reset(), save() 2019-06-20 01:51:49 -07:00
KMCompStore.m add support for if(), set(), reset(), save() 2019-06-20 01:51:49 -07:00
KMEngine.h persist save() values across sessions 2019-06-21 11:18:58 -07:00
KMEngine.m fix(mac): Caps processing was not consistent with core 2022-11-23 09:25:11 +11:00
KMXFile.h load Keyman Package information from kmp.json file and store in new PackageInfo object rather than in existing Dictionary hierarchy 2021-11-25 17:09:01 +07:00
KMXFile.m moved package reading out of app delegate to separate class KMPackageReader, conformed to code style guidelines 2021-12-07 15:24:17 +07:00
KVKFile.h Added guards around all headers to prevent duplicate imports 2018-01-29 14:01:33 -05:00
KVKFile.m [Mac] Initial check-in to open-source repo 2017-08-10 13:11:52 +07:00
MacVKCodes.h chore(mac): fix iso section key code 2020-11-25 18:56:23 +11:00
NFont.h Added guards around all headers to prevent duplicate imports 2018-01-29 14:01:33 -05:00
NFont.m [Mac] Initial check-in to open-source repo 2017-08-10 13:11:52 +07:00
NKey.h Added guards around all headers to prevent duplicate imports 2018-01-29 14:01:33 -05:00
NKey.m [Mac] Initial check-in to open-source repo 2017-08-10 13:11:52 +07:00
WindowsVKCodes.h feat(mac): Add support for "ISO" keyboard layouts 2020-11-24 08:24:30 +11:00