From 20602d2dd8fc69ec4e277aaa9ab2be2b84b7db91 Mon Sep 17 00:00:00 2001 From: Jaex Date: Sun, 6 Oct 2019 13:41:50 +0300 Subject: [PATCH] Respect panel selection order when using shift select --- ShareX.HelpersLib/Extensions/Extensions.cs | 20 ++++++++++++++------ ShareX/Controls/TaskThumbnailView.cs | 4 ++-- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/ShareX.HelpersLib/Extensions/Extensions.cs b/ShareX.HelpersLib/Extensions/Extensions.cs index fdecf183e..2b964a159 100644 --- a/ShareX.HelpersLib/Extensions/Extensions.cs +++ b/ShareX.HelpersLib/Extensions/Extensions.cs @@ -758,16 +758,24 @@ public static void SupportDarkTheme(this ListView lv) public static List Range(this List source, int start, int end) { + List list = new List(); + 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 Range(this List source, T start, T end) diff --git a/ShareX/Controls/TaskThumbnailView.cs b/ShareX/Controls/TaskThumbnailView.cs index cfc82f0d8..3005bf024 100644 --- a/ShareX/Controls/TaskThumbnailView.cs +++ b/ShareX/Controls/TaskThumbnailView.cs @@ -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);