|
|
@ -7,6 +7,7 @@ using Avalonia.Controls.Presenters; |
|
|
using Avalonia.Controls.Primitives; |
|
|
using Avalonia.Controls.Primitives; |
|
|
using Avalonia.Controls.Templates; |
|
|
using Avalonia.Controls.Templates; |
|
|
using Avalonia.Input; |
|
|
using Avalonia.Input; |
|
|
|
|
|
using Avalonia.VisualTree; |
|
|
|
|
|
|
|
|
namespace Avalonia.Controls |
|
|
namespace Avalonia.Controls |
|
|
{ |
|
|
{ |
|
|
@ -132,14 +133,19 @@ namespace Avalonia.Controls |
|
|
{ |
|
|
{ |
|
|
base.OnPointerPressed(e); |
|
|
base.OnPointerPressed(e); |
|
|
|
|
|
|
|
|
if (e.MouseButton == MouseButton.Left || e.MouseButton == MouseButton.Right) |
|
|
if (e.Source is IVisual source) |
|
|
{ |
|
|
{ |
|
|
e.Handled = UpdateSelectionFromEventSource( |
|
|
var point = e.GetCurrentPoint(source); |
|
|
e.Source, |
|
|
|
|
|
true, |
|
|
if (point.Properties.IsLeftButtonPressed || point.Properties.IsRightButtonPressed) |
|
|
(e.InputModifiers & InputModifiers.Shift) != 0, |
|
|
{ |
|
|
(e.InputModifiers & InputModifiers.Control) != 0, |
|
|
e.Handled = UpdateSelectionFromEventSource( |
|
|
e.MouseButton == MouseButton.Right); |
|
|
e.Source, |
|
|
|
|
|
true, |
|
|
|
|
|
(e.KeyModifiers & KeyModifiers.Shift) != 0, |
|
|
|
|
|
(e.KeyModifiers & KeyModifiers.Control) != 0, |
|
|
|
|
|
point.Properties.IsRightButtonPressed); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|