Browse Source

Fix #3332: Re-apply filter to all descendants.

pull/3340/head
Siegfried Pammer 6 months ago
parent
commit
17302345ec
  1. 15
      ILSpy/TreeNodes/ILSpyTreeNode.cs

15
ILSpy/TreeNodes/ILSpyTreeNode.cs

@ -29,8 +29,8 @@ using ICSharpCode.Decompiler.TypeSystem;
using ICSharpCode.ILSpy.AssemblyTree; using ICSharpCode.ILSpy.AssemblyTree;
using ICSharpCode.ILSpy.Docking; using ICSharpCode.ILSpy.Docking;
using ICSharpCode.ILSpyX.Abstractions; using ICSharpCode.ILSpyX.Abstractions;
using ICSharpCode.ILSpyX.TreeView.PlatformAbstractions;
using ICSharpCode.ILSpyX.TreeView; using ICSharpCode.ILSpyX.TreeView;
using ICSharpCode.ILSpyX.TreeView.PlatformAbstractions;
namespace ICSharpCode.ILSpy.TreeNodes namespace ICSharpCode.ILSpy.TreeNodes
{ {
@ -130,9 +130,6 @@ namespace ICSharpCode.ILSpy.TreeNodes
child.IsHidden = false; child.IsHidden = false;
break; break;
case FilterResult.Recurse: case FilterResult.Recurse:
child.EnsureChildrenFiltered();
child.IsHidden = child.Children.All(c => c.IsHidden);
break;
case FilterResult.MatchAndRecurse: case FilterResult.MatchAndRecurse:
child.EnsureChildrenFiltered(); child.EnsureChildrenFiltered();
child.IsHidden = child.Children.All(c => c.IsHidden); child.IsHidden = child.Children.All(c => c.IsHidden);
@ -161,16 +158,12 @@ namespace ICSharpCode.ILSpy.TreeNodes
} }
} }
internal void EnsureChildrenFiltered() internal void EnsureChildrenFiltered()
{ {
EnsureLazyChildren(); EnsureLazyChildren();
if (childrenNeedFiltering) childrenNeedFiltering = false;
{ foreach (ILSpyTreeNode node in this.Children.OfType<ILSpyTreeNode>())
childrenNeedFiltering = false; ApplyFilterToChild(node);
foreach (ILSpyTreeNode node in this.Children.OfType<ILSpyTreeNode>())
ApplyFilterToChild(node);
}
} }
protected string GetSuffixString(IMember member) => GetSuffixString(member.MetadataToken); protected string GetSuffixString(IMember member) => GetSuffixString(member.MetadataToken);

Loading…
Cancel
Save