diff --git a/MapControl/Avalonia/MapItem.Avalonia.cs b/MapControl/Avalonia/MapItem.Avalonia.cs deleted file mode 100644 index d74634d5..00000000 --- a/MapControl/Avalonia/MapItem.Avalonia.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Avalonia.Controls; -using Avalonia.Input; - -namespace MapControl; - -public partial class MapItem -{ - protected override void OnPointerPressed(PointerPressedEventArgs e) - { - if (e.Pointer.Type != PointerType.Mouse && - ItemsControl.ItemsControlFromItemContainer(this) is MapItemsControl mapItemsControl) - { - mapItemsControl.UpdateSelectionFromEvent(this, e); - } - - e.Handled = true; - } - - protected override void OnPointerReleased(PointerReleasedEventArgs e) - { - if (e.Pointer.Type == PointerType.Mouse && - e.InitialPressMouseButton == MouseButton.Left && - ItemsControl.ItemsControlFromItemContainer(this) is MapItemsControl mapItemsControl) - { - mapItemsControl.UpdateSelectionFromEvent(this, e); - } - - e.Handled = true; - } -} diff --git a/MapControl/Avalonia/MapItemsControl.Avalonia.cs b/MapControl/Avalonia/MapItemsControl.Avalonia.cs index 050f209e..7a16324e 100644 --- a/MapControl/Avalonia/MapItemsControl.Avalonia.cs +++ b/MapControl/Avalonia/MapItemsControl.Avalonia.cs @@ -56,14 +56,15 @@ public partial class MapItemsControl protected override bool ShouldTriggerSelection(Visual selectable, PointerEventArgs eventArgs) { - return true; + return eventArgs.Pointer.Type != PointerType.Mouse || + eventArgs.Properties.PointerUpdateKind == PointerUpdateKind.LeftButtonReleased; } public override bool UpdateSelectionFromEvent(UIElement container, RoutedEventArgs eventArgs) { if (SelectionMode == SelectionMode.Multiple && - eventArgs is PointerEventArgs e && - e.KeyModifiers.HasFlag(KeyModifiers.Shift)) + eventArgs is PointerEventArgs pointerEventArgs && + pointerEventArgs.KeyModifiers.HasFlag(KeyModifiers.Shift)) { SelectItemsInRange((MapItem)container); return true;