spiegel-keyman/mac/KeymanEngine4Mac
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
..
KeymanEngine4Mac fix(mac): Caps processing was not consistent with core 2022-11-23 09:25:11 +11:00
KeymanEngine4Mac.xcodeproj chore: support for xcode 12 2021-04-29 14:30:10 +10:00
KeymanEngine4MacTests [Mac] Fix offset mismatch for index() when in a rule containing if() statements. Fixes #1892 2019-08-09 08:59:51 +10:00