From bcc1aaf485613392732534800a245034d755cf9f Mon Sep 17 00:00:00 2001 From: Igor Kordiukiewicz Date: Tue, 31 May 2022 17:57:10 +0200 Subject: [PATCH] Show selected items size details when selecting by dragging the mouse --- .../Selection/RectangleSelection_ListViewBase.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Files.Uwp/UserControls/Selection/RectangleSelection_ListViewBase.cs b/src/Files.Uwp/UserControls/Selection/RectangleSelection_ListViewBase.cs index 46e9dcd9aeb4..cecfdc4e5920 100644 --- a/src/Files.Uwp/UserControls/Selection/RectangleSelection_ListViewBase.cs +++ b/src/Files.Uwp/UserControls/Selection/RectangleSelection_ListViewBase.cs @@ -21,6 +21,7 @@ public class RectangleSelection_ListViewBase : RectangleSelection private Point originDragPoint; private Dictionary itemsPosition; private List prevSelectedItems; + private List prevSelectedItemsDrag; private ItemSelectionStrategy selectionStrategy; public RectangleSelection_ListViewBase(ListViewBase uiElement, Rectangle selectionRectangle, SelectionChangedEventHandler selectionChanged = null) @@ -92,6 +93,17 @@ private void RectangleSelection_PointerMoved(object sender, PointerRoutedEventAr var scrollIncrement = Math.Min(20 - currentPoint.Position.Y, 40); scrollViewer.ChangeView(null, verticalOffset - scrollIncrement, null, false); } + + if (selectionChanged != null) + { + var currentSelectedItemsDrag = uiElement.SelectedItems.Cast().ToList(); + if (prevSelectedItemsDrag == null || !prevSelectedItemsDrag.SequenceEqual(currentSelectedItemsDrag)) + { + // Trigger SelectionChanged event if the selection has changed + selectionChanged(sender, null); + prevSelectedItemsDrag = currentSelectedItemsDrag; + } + } } } @@ -195,6 +207,8 @@ private void RectangleSelection_PointerReleased(object sender, PointerRoutedEven selectionStrategy = null; selectionState = SelectionState.Inactive; + prevSelectedItemsDrag = null; + e.Handled = true; }