Browse Source

extract clear selection to method.

pull/4526/head
Dan Walmsley 6 years ago
parent
commit
d6f70744e6
  1. 19
      src/Avalonia.Controls/TextBox.cs

19
src/Avalonia.Controls/TextBox.cs

@ -407,13 +407,18 @@ namespace Avalonia.Controls
_presenter?.ShowCaret();
}
private void ClearSelection()
{
SelectionStart = SelectionEnd = CaretIndex;
}
protected override void OnLostFocus(RoutedEventArgs e)
{
base.OnLostFocus(e);
if (ContextMenu == null || !ContextMenu.IsOpen)
{
SelectionStart = SelectionEnd = CaretIndex;
ClearSelection();
RevealPassword = false;
}
@ -443,7 +448,7 @@ namespace Avalonia.Controls
text = Text ?? string.Empty;
SetTextInternal(text.Substring(0, caretIndex) + input + text.Substring(caretIndex));
CaretIndex += input.Length;
SelectionStart = SelectionEnd = CaretIndex;
ClearSelection();
_undoRedoHelper.DiscardRedo();
}
}
@ -661,7 +666,7 @@ namespace Avalonia.Controls
SetTextInternal(text.Substring(0, caretIndex - removedCharacters) +
text.Substring(caretIndex));
CaretIndex -= removedCharacters;
SelectionStart = SelectionEnd = CaretIndex;
ClearSelection();
}
_undoRedoHelper.Snapshot();
@ -734,7 +739,7 @@ namespace Avalonia.Controls
}
else if (movement)
{
SelectionStart = SelectionEnd = CaretIndex;
ClearSelection();
}
if (handled || movement)
@ -1041,7 +1046,8 @@ namespace Avalonia.Controls
var end = Math.Max(selectionStart, selectionEnd);
var text = Text;
SetTextInternal(text.Substring(0, start) + text.Substring(end));
SelectionStart = SelectionEnd = CaretIndex = start;
CaretIndex = start;
ClearSelection();
return true;
}
else
@ -1130,7 +1136,8 @@ namespace Avalonia.Controls
set
{
Text = value.Text;
SelectionStart = SelectionEnd = CaretIndex = value.CaretPosition;
CaretIndex = value.CaretPosition;
ClearSelection();
}
}
}

Loading…
Cancel
Save