Browse Source

Merge pull request #10693 from Gillibald/fixes/macCaretPosition

[macOS] Fix caret position handling
release/11.0.0-preview6
Dan Walmsley 4 years ago
committed by GitHub
parent
commit
55c9bd69cd
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      native/Avalonia.Native/src/OSX/AvnView.mm
  2. 13
      src/Avalonia.Native/AvaloniaNativeTextInputMethod.cs

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

@ -598,13 +598,13 @@
{
[[_markedText mutableString] setString:@""];
[[self inputContext] discardMarkedText];
if(!_parent->InputMethod->IsActive()){
return;
}
_parent->InputMethod->Client->SetPreeditText(nullptr);
[[self inputContext] discardMarkedText];
}
- (NSArray<NSString *> *)validAttributesForMarkedText
@ -619,17 +619,12 @@
- (void)insertText:(id)string replacementRange:(NSRange)replacementRange
{
//[_text replaceCharactersInRange:replacementRange withString:string];
[self unmarkText];
//if(!_lastKeyHandled)
//{
if(_parent != nullptr)
{
_lastKeyHandled = _parent->BaseEvents->RawTextInputEvent(0, [string UTF8String]);
}
//}
if(_parent != nullptr)
{
_lastKeyHandled = _parent->BaseEvents->RawTextInputEvent(0, [string UTF8String]);
}
[[self inputContext] invalidateCharacterCoordinates];
}

13
src/Avalonia.Native/AvaloniaNativeTextInputMethod.cs

@ -60,7 +60,18 @@ namespace Avalonia.Native
return;
}
_inputMethod.SetCursorRect(_client.CursorRectangle.ToAvnRect());
var visualRoot = _client.TextViewVisual.VisualRoot;
var transform = _client.TextViewVisual.TransformToVisual((Visual)visualRoot);
if (transform == null)
{
return;
}
var rect = _client.CursorRectangle.TransformToAABB(transform.Value);
_inputMethod.SetCursorRect(rect.ToAvnRect());
}
private void OnSurroundingTextChanged(object sender, EventArgs e)

Loading…
Cancel
Save