Commit a45145ae authored by Marc Durdin's avatar Marc Durdin
Browse files

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.
parent a70d2583
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment