From 981919335d2bec42fd7903858206ea8a10aeb31a Mon Sep 17 00:00:00 2001 From: David Sparer Date: Wed, 21 Sep 2016 14:06:05 -0600 Subject: [PATCH] Resolved a severe performance issue with refreshing the tree after drag-n-drop operations --- mRemoteV1/UI/Window/ConnectionTreeWindow.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mRemoteV1/UI/Window/ConnectionTreeWindow.cs b/mRemoteV1/UI/Window/ConnectionTreeWindow.cs index c8c8d75d3..525a4d179 100644 --- a/mRemoteV1/UI/Window/ConnectionTreeWindow.cs +++ b/mRemoteV1/UI/Window/ConnectionTreeWindow.cs @@ -406,19 +406,20 @@ namespace mRemoteNG.UI.Window private void HandleCollectionChanged(object sender, NotifyCollectionChangedEventArgs args) { + var senderAsConnectionInfo = sender as ConnectionInfo; switch (args?.Action) { case NotifyCollectionChangedAction.Add: - RefreshTreeObject(sender); + RefreshTreeObject(senderAsConnectionInfo); break; case NotifyCollectionChangedAction.Remove: RefreshTreeObjects(args.OldItems); break; case NotifyCollectionChangedAction.Move: - RefreshTreeObject(sender); + RefreshTreeObjects(args.OldItems); break; case NotifyCollectionChangedAction.Reset: - RefreshTreeObject(sender); + RefreshTreeObject(senderAsConnectionInfo); break; case NotifyCollectionChangedAction.Replace: break; @@ -427,9 +428,9 @@ namespace mRemoteNG.UI.Window } } - private void RefreshTreeObject(object modelObject) + private void RefreshTreeObject(ConnectionInfo modelObject) { - RefreshTreeObjects(new[] { modelObject }); + olvConnections.RefreshObject(modelObject); } private void RefreshTreeObjects(IList modelObjects)