fix: extra "a" with Rime and apply clang-format

This commit is contained in:
wake 2026-02-07 14:23:30 +08:00 committed by Chris Rizzitello
parent b33eb0135d
commit e555b63931

View file

@ -566,11 +566,13 @@ kern_return_t OSXKeyState::postHIDVirtualKey(uint8_t virtualKey, bool postDown)
kern_return_t result = KERN_FAILURE;
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)) {
result =
IOHIDPostEvent(driver, NX_FLAGSCHANGED, {0, 0}, &event, kNXEventDataVersion, getKeyboardEventFlags(), true);
} else {
event.key.keyCode = virtualKey;
const auto eventType = postDown ? NX_KEYDOWN : NX_KEYUP;
result = IOHIDPostEvent(driver, eventType, {0, 0}, &event, kNXEventDataVersion, 0, false);
}