Skip to content

Commit c1ab50b

Browse files
authored
[Mac] Rework raw keyDown/textInput handling (#12774)
1 parent 8f7e055 commit c1ab50b

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

native/Avalonia.Native/src/OSX/AvnView.mm

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -537,11 +537,13 @@ - (void)flagsChanged:(NSEvent *)event
537537
- (void)keyDown:(NSEvent *)event
538538
{
539539
_lastKeyHandled = false;
540-
540+
541541
[self keyboardEvent:event withType:KeyDown];
542+
543+
BOOL isKeyDownConsumed = [[self inputContext] handleEvent:event];
542544

543545
if(!_lastKeyHandled){
544-
[[self inputContext] handleEvent:event];
546+
_lastKeyHandled = isKeyDownConsumed == YES;
545547
}
546548
}
547549

@@ -552,7 +554,6 @@ - (void)keyUp:(NSEvent *)event
552554
}
553555

554556
- (void) doCommandBySelector:(SEL)selector{
555-
556557
}
557558

558559
- (AvnInputModifiers)getModifiers:(NSEventModifierFlags)mod
@@ -599,8 +600,6 @@ - (NSRange)selectedRange
599600

600601
- (void)setMarkedText:(id)string selectedRange:(NSRange)selectedRange replacementRange:(NSRange)replacementRange
601602
{
602-
_lastKeyHandled = true;
603-
604603
NSString* markedText;
605604

606605
if([string isKindOfClass:[NSAttributedString class]])
@@ -669,8 +668,7 @@ - (void)insertText:(id)string replacementRange:(NSRange)replacementRange
669668

670669
uint64_t timestamp = static_cast<uint64_t>([NSDate timeIntervalSinceReferenceDate] * 1000);
671670

672-
_lastKeyHandled = _parent->BaseEvents->RawTextInputEvent(timestamp, [text UTF8String]);
673-
671+
_parent->BaseEvents->RawTextInputEvent(timestamp, [text UTF8String]);
674672
}
675673

676674
- (NSUInteger)characterIndexForPoint:(NSPoint)point

0 commit comments

Comments
 (0)