Respect panel selection order when using shift select

This commit is contained in:
Jaex 2019-10-06 13:41:50 +03:00
parent f95b3bdd1d
commit 20602d2dd8
2 changed files with 16 additions and 8 deletions

View file

@ -758,16 +758,24 @@ public static void SupportDarkTheme(this ListView lv)
public static List<T> Range<T>(this List<T> source, int start, int end)
{
List<T> list = new List<T>();
if (start > end)
{
int temp = start;
start = end;
end = temp;
for (int i = start; i >= end; i--)
{
list.Add(source[i]);
}
}
else
{
for (int i = start; i <= end; i++)
{
list.Add(source[i]);
}
}
int length = end - start + 1;
return source.GetRange(start, length);
return list;
}
public static List<T> Range<T>(this List<T> source, T start, T end)

View file

@ -268,11 +268,11 @@ private void Panel_MouseUp(object sender, MouseEventArgs e, TaskThumbnailPanel p
{
if (SelectedPanels.Count > 0)
{
TaskThumbnailPanel lastPanel = SelectedPanels[SelectedPanels.Count - 1];
TaskThumbnailPanel firstPanel = SelectedPanels[0];
UnselectAllPanels();
foreach (TaskThumbnailPanel p in Panels.Range(panel, lastPanel))
foreach (TaskThumbnailPanel p in Panels.Range(firstPanel, panel))
{
p.Selected = true;
SelectedPanels.Add(p);