Browse Source

Translate cursor rect relative to the visual root

pull/10693/head
Benedikt Stebner 4 years ago
parent
commit
347b6a11a0
  1. 19
      native/Avalonia.Native/src/OSX/AvnView.mm
  2. 6
      src/Avalonia.Controls/TextBoxTextInputMethodClient.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];
}

6
src/Avalonia.Controls/TextBoxTextInputMethodClient.cs

@ -30,7 +30,9 @@ namespace Avalonia.Controls
return default;
}
var transform = _presenter.TransformToVisual(_parent);
var visualRoot = _presenter.VisualRoot!;
var transform = _presenter.TransformToVisual((Visual)visualRoot);
if (transform == null)
{
@ -38,7 +40,7 @@ namespace Avalonia.Controls
}
var rect = _presenter.GetCursorRectangle().TransformToAABB(transform.Value);
return rect;
}
}

Loading…
Cancel
Save