Skip to content

Commit 8857bb6

Browse files
Show selected items size details when selecting by dragging the mouse (#9305)
1 parent 8e4e532 commit 8857bb6

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/Files.Uwp/UserControls/Selection/RectangleSelection_ListViewBase.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public class RectangleSelection_ListViewBase : RectangleSelection
2121
private Point originDragPoint;
2222
private Dictionary<object, System.Drawing.Rectangle> itemsPosition;
2323
private List<object> prevSelectedItems;
24+
private List<object> prevSelectedItemsDrag;
2425
private ItemSelectionStrategy selectionStrategy;
2526

2627
public RectangleSelection_ListViewBase(ListViewBase uiElement, Rectangle selectionRectangle, SelectionChangedEventHandler selectionChanged = null)
@@ -92,6 +93,17 @@ private void RectangleSelection_PointerMoved(object sender, PointerRoutedEventAr
9293
var scrollIncrement = Math.Min(20 - currentPoint.Position.Y, 40);
9394
scrollViewer.ChangeView(null, verticalOffset - scrollIncrement, null, false);
9495
}
96+
97+
if (selectionChanged != null)
98+
{
99+
var currentSelectedItemsDrag = uiElement.SelectedItems.Cast<object>().ToList();
100+
if (prevSelectedItemsDrag == null || !prevSelectedItemsDrag.SequenceEqual(currentSelectedItemsDrag))
101+
{
102+
// Trigger SelectionChanged event if the selection has changed
103+
selectionChanged(sender, null);
104+
prevSelectedItemsDrag = currentSelectedItemsDrag;
105+
}
106+
}
95107
}
96108
}
97109

@@ -195,6 +207,8 @@ private void RectangleSelection_PointerReleased(object sender, PointerRoutedEven
195207
selectionStrategy = null;
196208
selectionState = SelectionState.Inactive;
197209

210+
prevSelectedItemsDrag = null;
211+
198212
e.Handled = true;
199213
}
200214

0 commit comments

Comments
 (0)