Author :
Pierre Le Marre
Date :
2025-06-23 18:15:18
Hash :c4f4ba41 Message :state: Fix modifier and group latch
Prior to this commit, the sequences:
- 1. latch A ↓
2. latch B ↓
3. latch B ↑
4. latch A ↑
- 1. latch A ↓
2. latch B ↓
3. latch A ↑
4. latch B ↑
would result in only B being latched, because the XKB protocol specifies
that latches are triggered only if keys are *sequentially* tapped, i.e.
a strict sequence of press and release of each key.
It seems an unnecessary limitation:
- `SlowKeys` and `XkbAX_TwoKeys` are the proper accessibility features
to control accidental key presses, not latches nor `StickyKeys`.
- Latches are also used outside their original accessibility role.
A user may activate multiple latch keys simultaneously:
- same hand: two latch keys being close to each other;
- different hand: two keys being activated independently.
Changed the latching behavior so that the rules used to break a latch
are the same than those used to prevent it. Depressing and releasing two
latching keys simultaneously will now activate both latches, as expected.
Since this is a breaking change, it is enabled only by the keymap format
`XKB_KEYMAP_FORMAT_TEXT_V2`.