diff --git a/native/Avalonia.Native/src/OSX/AvnView.mm b/native/Avalonia.Native/src/OSX/AvnView.mm index ea6ba93fdb0..0508a0557f3 100644 --- a/native/Avalonia.Native/src/OSX/AvnView.mm +++ b/native/Avalonia.Native/src/OSX/AvnView.mm @@ -537,11 +537,13 @@ - (void)flagsChanged:(NSEvent *)event - (void)keyDown:(NSEvent *)event { _lastKeyHandled = false; - + [self keyboardEvent:event withType:KeyDown]; + + BOOL isKeyDownConsumed = [[self inputContext] handleEvent:event]; if(!_lastKeyHandled){ - [[self inputContext] handleEvent:event]; + _lastKeyHandled = isKeyDownConsumed == YES; } } @@ -552,7 +554,6 @@ - (void)keyUp:(NSEvent *)event } - (void) doCommandBySelector:(SEL)selector{ - } - (AvnInputModifiers)getModifiers:(NSEventModifierFlags)mod @@ -599,8 +600,6 @@ - (NSRange)selectedRange - (void)setMarkedText:(id)string selectedRange:(NSRange)selectedRange replacementRange:(NSRange)replacementRange { - _lastKeyHandled = true; - NSString* markedText; if([string isKindOfClass:[NSAttributedString class]]) @@ -669,8 +668,7 @@ - (void)insertText:(id)string replacementRange:(NSRange)replacementRange uint64_t timestamp = static_cast([NSDate timeIntervalSinceReferenceDate] * 1000); - _lastKeyHandled = _parent->BaseEvents->RawTextInputEvent(timestamp, [text UTF8String]); - + _parent->BaseEvents->RawTextInputEvent(timestamp, [text UTF8String]); } - (NSUInteger)characterIndexForPoint:(NSPoint)point