Browse Source

Merge pull request #11972 from Gillibald/deleteSelectionOnCompositionStart

TextBox fixes
pull/11978/head
Dan Walmsley 3 years ago
committed by GitHub
parent
commit
593f7fd408
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 27
      src/Avalonia.Controls/TextBox.cs

27
src/Avalonia.Controls/TextBox.cs

@ -814,7 +814,12 @@ namespace Avalonia.Controls
if (IsFocused)
{
_presenter?.ShowCaret();
if(_presenter != null)
{
_presenter.ShowCaret();
_presenter.PropertyChanged += PresenterPropertyChanged;
}
}
}
@ -822,9 +827,29 @@ namespace Avalonia.Controls
{
base.OnDetachedFromVisualTree(e);
if (_presenter != null)
{
_presenter.HideCaret();
_presenter.PropertyChanged -= PresenterPropertyChanged;
}
_imClient.SetPresenter(null, null);
}
private void PresenterPropertyChanged(object? sender, AvaloniaPropertyChangedEventArgs e)
{
if(e.Property == TextPresenter.PreeditTextProperty)
{
if(string.IsNullOrEmpty(e.OldValue as string) && !string.IsNullOrEmpty(e.NewValue as string))
{
PseudoClasses.Set(":empty", false);
DeleteSelection();
}
}
}
protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
{
base.OnPropertyChanged(change);

Loading…
Cancel
Save