From aef47609a305dfa06ae22b8775eb991de56faefc Mon Sep 17 00:00:00 2001 From: ianselmi Date: Sun, 15 Nov 2020 17:13:32 +0100 Subject: [PATCH] enable multi item drag&drop --- .../Tree/ConnectionTreeDragAndDropHandler.cs | 21 ++++++++++++------- .../Window/ConnectionTreeWindow.Designer.cs | 2 +- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/mRemoteNG/Tree/ConnectionTreeDragAndDropHandler.cs b/mRemoteNG/Tree/ConnectionTreeDragAndDropHandler.cs index 31ec0a1b..644c697b 100644 --- a/mRemoteNG/Tree/ConnectionTreeDragAndDropHandler.cs +++ b/mRemoteNG/Tree/ConnectionTreeDragAndDropHandler.cs @@ -22,8 +22,11 @@ namespace mRemoteNG.Tree public void HandleEvent_ModelDropped(object sender, ModelDropEventArgs e) { if (!(e.TargetModel is ConnectionInfo dropTarget)) return; - var dropSource = (ConnectionInfo)e.SourceModels[0]; - DropModel(dropSource, dropTarget, e.DropTargetLocation); + foreach(var dropSource in e.SourceModels.Cast()) + { + DropModel(dropSource, dropTarget, e.DropTargetLocation); + } + e.Handled = true; } @@ -72,13 +75,15 @@ namespace mRemoteNG.Tree _enableFeedback = true; _currentFeedbackColor = DropDeniedFeedbackColor; _infoMessage = null; - var dropSource = e.SourceModels.Cast().First(); - var dropTarget = e.TargetModel as ConnectionInfo; + foreach (var dropSource in e.SourceModels.Cast()) + { + var dropTarget = e.TargetModel as ConnectionInfo; - e.Effect = CanModelDrop(dropSource, dropTarget, e.DropTargetLocation); - e.InfoMessage = _infoMessage; - e.DropSink.EnableFeedback = _enableFeedback; - e.DropSink.FeedbackColor = _currentFeedbackColor; + e.Effect = CanModelDrop(dropSource, dropTarget, e.DropTargetLocation); + e.InfoMessage = _infoMessage; + e.DropSink.EnableFeedback = _enableFeedback; + e.DropSink.FeedbackColor = _currentFeedbackColor; + } e.Handled = true; } diff --git a/mRemoteNG/UI/Window/ConnectionTreeWindow.Designer.cs b/mRemoteNG/UI/Window/ConnectionTreeWindow.Designer.cs index 99f89c40..d875ff3f 100644 --- a/mRemoteNG/UI/Window/ConnectionTreeWindow.Designer.cs +++ b/mRemoteNG/UI/Window/ConnectionTreeWindow.Designer.cs @@ -55,7 +55,7 @@ namespace mRemoteNG.UI.Window this.ConnectionTree.IsSimpleDragSource = true; this.ConnectionTree.LabelEdit = true; this.ConnectionTree.Location = new System.Drawing.Point(0, 24); - this.ConnectionTree.MultiSelect = false; + this.ConnectionTree.MultiSelect = true; this.ConnectionTree.Name = "ConnectionTree"; this.ConnectionTree.NodeDeletionConfirmer = alwaysConfirmYes2; this.ConnectionTree.PostSetupActions = new IConnectionTreeDelegate[0];