|
|
|
@ -126,7 +126,7 @@ namespace Avalonia.Controls |
|
|
|
|
|
|
|
this.GetObservable(TextProperty).Subscribe(text => |
|
|
|
{ |
|
|
|
if (PasswordChar != default(char)) |
|
|
|
if (IsPasswordBox) |
|
|
|
{ |
|
|
|
DisplayText = new string(PasswordChar, text.Length); |
|
|
|
} |
|
|
|
@ -345,7 +345,7 @@ namespace Avalonia.Controls |
|
|
|
private async void Copy() |
|
|
|
{ |
|
|
|
await ((IClipboard)AvaloniaLocator.Current.GetService(typeof(IClipboard))) |
|
|
|
.SetTextAsync(GetSelection()); |
|
|
|
.SetTextAsync(GetSelection()); |
|
|
|
} |
|
|
|
|
|
|
|
private async void Paste() |
|
|
|
@ -379,7 +379,10 @@ namespace Avalonia.Controls |
|
|
|
case Key.C: |
|
|
|
if (modifiers == InputModifiers.Control) |
|
|
|
{ |
|
|
|
Copy(); |
|
|
|
if (!IsPasswordBox) |
|
|
|
{ |
|
|
|
Copy(); |
|
|
|
} |
|
|
|
handled = true; |
|
|
|
} |
|
|
|
break; |
|
|
|
@ -387,8 +390,11 @@ namespace Avalonia.Controls |
|
|
|
case Key.X: |
|
|
|
if (modifiers == InputModifiers.Control) |
|
|
|
{ |
|
|
|
Copy(); |
|
|
|
DeleteSelection(); |
|
|
|
if (!IsPasswordBox) |
|
|
|
{ |
|
|
|
Copy(); |
|
|
|
DeleteSelection(); |
|
|
|
} |
|
|
|
handled = true; |
|
|
|
} |
|
|
|
break; |
|
|
|
@ -886,6 +892,8 @@ namespace Avalonia.Controls |
|
|
|
SelectionEnd = CaretIndex; |
|
|
|
} |
|
|
|
|
|
|
|
private bool IsPasswordBox => PasswordChar != default(char); |
|
|
|
|
|
|
|
UndoRedoState UndoRedoHelper<UndoRedoState>.IUndoRedoHost.UndoRedoState |
|
|
|
{ |
|
|
|
get { return new UndoRedoState(Text, CaretIndex); } |
|
|
|
|