From 3c28b9043b3a5555a2f100167c162f878eb1661e Mon Sep 17 00:00:00 2001 From: ClemensFischer Date: Tue, 14 Apr 2026 09:53:19 +0200 Subject: [PATCH] Avalonia 12 --- MapControl/Avalonia/MapItem.Avalonia.cs | 30 ------------------- .../Avalonia/MapItemsControl.Avalonia.cs | 7 +++-- 2 files changed, 4 insertions(+), 33 deletions(-) delete mode 100644 MapControl/Avalonia/MapItem.Avalonia.cs 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;