Browse Source
Merge pull request #11972 from Gillibald/deleteSelectionOnCompositionStart
TextBox fixes
pull/11978/head
Dan Walmsley
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
26 additions and
1 deletions
-
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); |
|
|
|
|