fix: extra "a" with Rime and apply clang-format
This commit is contained in:
parent
b33eb0135d
commit
e555b63931
1 changed files with 3 additions and 1 deletions
|
|
@ -566,11 +566,13 @@ kern_return_t OSXKeyState::postHIDVirtualKey(uint8_t virtualKey, bool postDown)
|
||||||
kern_return_t result = KERN_FAILURE;
|
kern_return_t result = KERN_FAILURE;
|
||||||
|
|
||||||
if (driver) {
|
if (driver) {
|
||||||
|
// Gotcha: `keyCode` must be set for all event types (including modifier key press);
|
||||||
|
// the default zero value is interpreted as the 'a' key by some input methods (e.g. Chinese).
|
||||||
|
event.key.keyCode = virtualKey;
|
||||||
if (isModifier(virtualKey)) {
|
if (isModifier(virtualKey)) {
|
||||||
result =
|
result =
|
||||||
IOHIDPostEvent(driver, NX_FLAGSCHANGED, {0, 0}, &event, kNXEventDataVersion, getKeyboardEventFlags(), true);
|
IOHIDPostEvent(driver, NX_FLAGSCHANGED, {0, 0}, &event, kNXEventDataVersion, getKeyboardEventFlags(), true);
|
||||||
} else {
|
} else {
|
||||||
event.key.keyCode = virtualKey;
|
|
||||||
const auto eventType = postDown ? NX_KEYDOWN : NX_KEYUP;
|
const auto eventType = postDown ? NX_KEYDOWN : NX_KEYUP;
|
||||||
result = IOHIDPostEvent(driver, eventType, {0, 0}, &event, kNXEventDataVersion, 0, false);
|
result = IOHIDPostEvent(driver, eventType, {0, 0}, &event, kNXEventDataVersion, 0, false);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue