Browse Source

Minor tweaks

pull/11021/head
Benedikt Stebner 4 years ago
parent
commit
be40f91959
  1. 34
      native/Avalonia.Native/src/OSX/AvnView.mm

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

@ -22,7 +22,7 @@
AvnPlatformResizeReason _resizeReason; AvnPlatformResizeReason _resizeReason;
AvnAccessibilityElement* _accessibilityChild; AvnAccessibilityElement* _accessibilityChild;
NSRect _cursorRect; NSRect _cursorRect;
NSMutableString* _text; NSMutableAttributedString* _text;
NSRange _selection; NSRange _selection;
} }
@ -59,6 +59,11 @@
[self registerForDraggedTypes: @[@"public.data", GetAvnCustomDataType()]]; [self registerForDraggedTypes: @[@"public.data", GetAvnCustomDataType()]];
_modifierState = AvnInputModifiersNone; _modifierState = AvnInputModifiersNone;
_text = [[NSMutableAttributedString alloc] initWithString:@""];
_markedText = [[NSMutableAttributedString alloc] initWithString:@""];
_selection = NSMakeRange(NSNotFound, 0);
return self; return self;
} }
@ -530,10 +535,6 @@
} }
} }
- (void) doCommandBySelector:(SEL)selector{
}
- (void)keyUp:(NSEvent *)event - (void)keyUp:(NSEvent *)event
{ {
[self keyboardEvent:event withType:KeyUp]; [self keyboardEvent:event withType:KeyUp];
@ -575,7 +576,7 @@
- (NSRange)markedRange - (NSRange)markedRange
{ {
if([_markedText length] > 0) if([_markedText length] > 0)
return NSMakeRange(0, [_markedText length] - 1); return NSMakeRange(_selection.location, [_markedText length]);
return NSMakeRange(NSNotFound, 0); return NSMakeRange(NSNotFound, 0);
} }
@ -608,8 +609,11 @@
{ {
[[_markedText mutableString] setString:@""]; [[_markedText mutableString] setString:@""];
[[self inputContext] discardMarkedText]; if([self inputContext]) {
[[self inputContext] discardMarkedText];
[[self inputContext] invalidateCharacterCoordinates];
}
if(!_parent->InputMethod->IsActive()){ if(!_parent->InputMethod->IsActive()){
return; return;
} }
@ -631,8 +635,6 @@
{ {
_lastKeyHandled = true; _lastKeyHandled = true;
[self unmarkText];
if(_parent != nullptr) if(_parent != nullptr)
{ {
uint32_t timestamp = static_cast<uint32_t>([NSDate timeIntervalSinceReferenceDate] * 1000); uint32_t timestamp = static_cast<uint32_t>([NSDate timeIntervalSinceReferenceDate] * 1000);
@ -640,7 +642,7 @@
_lastKeyHandled = _parent->BaseEvents->RawTextInputEvent(timestamp, [string UTF8String]); _lastKeyHandled = _parent->BaseEvents->RawTextInputEvent(timestamp, [string UTF8String]);
} }
[[self inputContext] invalidateCharacterCoordinates]; //[self unmarkText];
} }
- (NSUInteger)characterIndexForPoint:(NSPoint)point - (NSUInteger)characterIndexForPoint:(NSPoint)point
@ -762,13 +764,15 @@
- (void) setText:(NSString *)text{ - (void) setText:(NSString *)text{
[self unmarkText]; [self unmarkText];
[_text setString:text]; [[_text mutableString] setString:text];
} }
- (void) setSelection:(int)start :(int)end{ - (void) setSelection:(int)start :(int)end{
_selection = NSMakeRange(start, end - start); _selection = NSMakeRange(start, end - start);
[[self inputContext] invalidateCharacterCoordinates]; if([self inputContext]) {
[[self inputContext] invalidateCharacterCoordinates];
}
} }
- (void) setCursorRect:(AvnRect)rect{ - (void) setCursorRect:(AvnRect)rect{
@ -780,7 +784,9 @@
_cursorRect = windowRectOnScreen; _cursorRect = windowRectOnScreen;
[[self inputContext] invalidateCharacterCoordinates]; if([self inputContext]) {
[[self inputContext] invalidateCharacterCoordinates];
}
} }
@end @end

Loading…
Cancel
Save