mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user