Minor optimization tree refresh when dragging nodes between containers. There is still a small disruption in the UI (~200ms) when moving nodes between containers.

This commit is contained in:
David Sparer
2016-09-22 10:36:37 -06:00
parent 981919335d
commit b646e7ef70

View File

@@ -406,12 +406,16 @@ namespace mRemoteNG.UI.Window
private void HandleCollectionChanged(object sender, NotifyCollectionChangedEventArgs args)
{
var senderAsConnectionInfo = sender as ConnectionInfo;
var senderAsContainerInfo = sender as ContainerInfo;
switch (args?.Action)
{
case NotifyCollectionChangedAction.Add:
RefreshTreeObject(senderAsConnectionInfo);
break;
var otherChild = senderAsContainerInfo?.Children.First(child => !args.NewItems.Contains(child));
if (otherChild != null)
RefreshTreeObject(otherChild);
else
RefreshTreeObject(senderAsContainerInfo);
break;
case NotifyCollectionChangedAction.Remove:
RefreshTreeObjects(args.OldItems);
break;
@@ -419,7 +423,7 @@ namespace mRemoteNG.UI.Window
RefreshTreeObjects(args.OldItems);
break;
case NotifyCollectionChangedAction.Reset:
RefreshTreeObject(senderAsConnectionInfo);
RefreshTreeObject(senderAsContainerInfo);
break;
case NotifyCollectionChangedAction.Replace:
break;