From 4e212279b96e1718637bcc0dae5538a5c0a575eb Mon Sep 17 00:00:00 2001 From: groverlynn Date: Mon, 15 May 2023 12:12:23 +0200 Subject: [PATCH] Update SquirrelInputController.m --- SquirrelInputController.m | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/SquirrelInputController.m b/SquirrelInputController.m index cc7402768..f0b553cef 100644 --- a/SquirrelInputController.m +++ b/SquirrelInputController.m @@ -91,20 +91,21 @@ - (BOOL)handleEvent:(NSEvent*)event client:(id)sender [self processKey:rime_keycode modifiers:rime_modifiers]; } if (changes & OSX_SHIFT_MASK) { - release_mask = modifiers & OSX_SHIFT_MASK ? 0 : kReleaseMask | (eventCount - _lastEventCount == 1 ? 0 : kIgnoredMask); + release_mask = modifiers & OSX_SHIFT_MASK ? 0 : kReleaseMask | (eventCount - _lastEventCount <= 1 ? 0 : kIgnoredMask); [self processKey:rime_keycode modifiers:(rime_modifiers | release_mask)]; } if (changes & OSX_CTRL_MASK) { - release_mask = modifiers & OSX_CTRL_MASK ? 0 : kReleaseMask | (eventCount - _lastEventCount == 1 ? 0 : kIgnoredMask); + release_mask = modifiers & OSX_CTRL_MASK ? 0 : kReleaseMask | (eventCount - _lastEventCount <= 1 ? 0 : kIgnoredMask); [self processKey:rime_keycode modifiers:(rime_modifiers | release_mask)]; } if (changes & OSX_ALT_MASK) { - release_mask = modifiers & OSX_ALT_MASK ? 0 : kReleaseMask | (eventCount - _lastEventCount == 1 ? 0 : kIgnoredMask); + release_mask = modifiers & OSX_ALT_MASK ? 0 : kReleaseMask | (eventCount - _lastEventCount <= 1 ? 0 : kIgnoredMask); [self processKey:rime_keycode modifiers:(rime_modifiers | release_mask)]; } if (changes & OSX_COMMAND_MASK) { - release_mask = modifiers & OSX_COMMAND_MASK ? 0 : kReleaseMask | (eventCount - _lastEventCount == 1 ? 0 : kIgnoredMask); + release_mask = modifiers & OSX_COMMAND_MASK ? 0 : kReleaseMask | (eventCount - _lastEventCount <= 1 ? 0 : kIgnoredMask); [self processKey:rime_keycode modifiers:(rime_modifiers | release_mask)]; + _lastEventCount = eventCount; // do not update UI when using Command key break; }