Browse Source

Relocate CompositionRegion

pull/9177/head
Benedikt Stebner 4 years ago
parent
commit
a589d2e43b
  1. 15
      src/Android/Avalonia.Android/AndroidInputMethod.cs
  2. 2
      src/Android/Avalonia.Android/Platform/SkiaPlatform/TopLevelImpl.cs
  3. 23
      src/Avalonia.Base/Input/TextInput/ITextInputMethodClient.cs
  4. 10
      src/Avalonia.Controls/TextBoxTextInputMethodClient.cs

15
src/Android/Avalonia.Android/AndroidInputMethod.cs

@ -162,4 +162,19 @@ namespace Avalonia.Android
}); });
} }
} }
public readonly struct ComposingRegion
{
private readonly int _start = -1;
private readonly int _end = -1;
public ComposingRegion(int start, int end)
{
_start = start;
_end = end;
}
public int Start => _start;
public int End => _end;
}
} }

2
src/Android/Avalonia.Android/Platform/SkiaPlatform/TopLevelImpl.cs

@ -287,8 +287,6 @@ namespace Avalonia.Android.Platform.SkiaPlatform
ComposingRegion = new ComposingRegion(start, end); ComposingRegion = new ComposingRegion(start, end);
_inputMethod.Client?.SetComposingRegion(ComposingRegion);
return base.SetComposingRegion(start, end); return base.SetComposingRegion(start, end);
} }

23
src/Avalonia.Base/Input/TextInput/ITextInputMethodClient.cs

@ -30,7 +30,6 @@ namespace Avalonia.Input.TextInput
/// </summary> /// </summary>
void SetPreeditText(string? text); void SetPreeditText(string? text);
void SetComposingRegion(ComposingRegion? region);
/// <summary> /// <summary>
/// Indicates if text input client is capable of providing the text around the cursor /// Indicates if text input client is capable of providing the text around the cursor
/// </summary> /// </summary>
@ -53,26 +52,4 @@ namespace Avalonia.Input.TextInput
public int CursorOffset { get; set; } public int CursorOffset { get; set; }
public int AnchorOffset { get; set; } public int AnchorOffset { get; set; }
} }
public readonly struct ComposingRegion
{
private readonly int _start = -1;
private readonly int _end = -1;
public ComposingRegion(int start, int end)
{
_start = start;
_end = end;
}
public int Start => _start;
public int End => _end;
public bool Intersects(ComposingRegion region)
{
return _start <= region.Start && _end >= region.Start ||
_end >= region.End && _start <= region.End ||
_start >= region.Start && _end <= region.End;
}
}
} }

10
src/Avalonia.Controls/TextBoxTextInputMethodClient.cs

@ -187,15 +187,5 @@ namespace Avalonia.Controls
}, DispatcherPriority.Input); }, DispatcherPriority.Input);
} }
public void SetComposingRegion(ComposingRegion? region)
{
if(_presenter == null)
{
return;
}
_presenter.ComposingRegion = region;
}
} }
} }

Loading…
Cancel
Save