|
|
@@ -497,37 +497,34 @@ namespace Avalonia.Controls
|
|
|
|
|
|
protected override void OnPointerPressed(PointerPressedEventArgs e)
|
|
|
{
|
|
|
- if (e.Source == _presenter)
|
|
|
- {
|
|
|
- var point = e.GetPosition(_presenter);
|
|
|
- var index = CaretIndex = _presenter.GetCaretIndex(point);
|
|
|
- var text = Text;
|
|
|
+ var point = e.GetPosition(_presenter);
|
|
|
+ var index = CaretIndex = _presenter.GetCaretIndex(point);
|
|
|
+ var text = Text;
|
|
|
|
|
|
- if (text != null)
|
|
|
+ if (text != null)
|
|
|
+ {
|
|
|
+ switch (e.ClickCount)
|
|
|
{
|
|
|
- switch (e.ClickCount)
|
|
|
- {
|
|
|
- case 1:
|
|
|
- SelectionStart = SelectionEnd = index;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- if (!StringUtils.IsStartOfWord(text, index))
|
|
|
- {
|
|
|
- SelectionStart = StringUtils.PreviousWord(text, index);
|
|
|
- }
|
|
|
+ case 1:
|
|
|
+ SelectionStart = SelectionEnd = index;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ if (!StringUtils.IsStartOfWord(text, index))
|
|
|
+ {
|
|
|
+ SelectionStart = StringUtils.PreviousWord(text, index);
|
|
|
+ }
|
|
|
|
|
|
- SelectionEnd = StringUtils.NextWord(text, index);
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- SelectionStart = 0;
|
|
|
- SelectionEnd = text.Length;
|
|
|
- break;
|
|
|
- }
|
|
|
+ SelectionEnd = StringUtils.NextWord(text, index);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ SelectionStart = 0;
|
|
|
+ SelectionEnd = text.Length;
|
|
|
+ break;
|
|
|
}
|
|
|
-
|
|
|
- e.Device.Capture(_presenter);
|
|
|
- e.Handled = true;
|
|
|
}
|
|
|
+
|
|
|
+ e.Device.Capture(_presenter);
|
|
|
+ e.Handled = true;
|
|
|
}
|
|
|
|
|
|
protected override void OnPointerMoved(PointerEventArgs e)
|