On Tue Jan 30 10:13:17 2024 +0000, Rémi Bernon wrote:
And here?
static void hatswitch_compose(LONG x, LONG y, UINT index, BYTE *value) { BYTE mask = (index % 2) ? 0x0f : 0xf0, shift = (index % 2) ? 4 : 0; if (x == 0 && y == 0) *value = (*value & mask) | (0 << shift); else if (x == 0 && y < 0) *value = (*value & mask) | (1 << shift); else if (x > 0 && y < 0) *value = (*value & mask) | (2 << shift); else if (x > 0 && y == 0) *value = (*value & mask) | (3 << shift); else if (x > 0 && y > 0) *value = (*value & mask) | (4 << shift); else if (x == 0 && y > 0) *value = (*value & mask) | (5 << shift); else if (x < 0 && y > 0) *value = (*value & mask) | (6 << shift); else if (x < 0 && y == 0) *value = (*value & mask) | (7 << shift); else if (x < 0 && y < 0) *value = (*value & mask) | (8 << shift); }
Ah, I haven't seen that in the email preview. If the current solution is not okay let me know.