diff --git a/Source/Editor/Surface/ContextMenu/VisjectCMGroup.cs b/Source/Editor/Surface/ContextMenu/VisjectCMGroup.cs index cd189ab94..9b5da5913 100644 --- a/Source/Editor/Surface/ContextMenu/VisjectCMGroup.cs +++ b/Source/Editor/Surface/ContextMenu/VisjectCMGroup.cs @@ -136,6 +136,8 @@ namespace FlaxEditor.Surface.ContextMenu return; } + Profiler.BeginEvent("VisjectCMGroup.EvaluateVisibilityWithBox"); + bool isAnyVisible = false; for (int i = 0; i < _children.Count; i++) { @@ -155,6 +157,8 @@ namespace FlaxEditor.Surface.ContextMenu // Hide group if none of the items matched the filter Visible = false; } + + Profiler.EndEvent(); } /// diff --git a/Source/Editor/Surface/ContextMenu/VisjectCMItem.cs b/Source/Editor/Surface/ContextMenu/VisjectCMItem.cs index b2d5fd7a8..dc13a0e2b 100644 --- a/Source/Editor/Surface/ContextMenu/VisjectCMItem.cs +++ b/Source/Editor/Surface/ContextMenu/VisjectCMItem.cs @@ -121,6 +121,8 @@ namespace FlaxEditor.Surface.ContextMenu if(_archetype?.Elements == null) return false; + Profiler.BeginEvent("VisjectCMItem.IsCompatibleWithBox"); + bool isCompatible = false; foreach (NodeElementArchetype element in _archetype.Elements) { @@ -129,11 +131,11 @@ namespace FlaxEditor.Surface.ContextMenu if ((box.IsOutput && element.Type == NodeElementType.Output) || (!box.IsOutput && element.Type == NodeElementType.Input)) continue; - - bool checkCompatibility = box.CanUseType(element.ConnectionsType);; + + bool checkCompatibility = ((element.ConnectionsType == null || element.ConnectionsType == typeof(void)) && box.CurrentType != typeof(FlaxEngine.Object)); if (!checkCompatibility) { - if ((element.ConnectionsType == null || element.ConnectionsType == typeof(void)) && box.CurrentType != typeof(FlaxEngine.Object)) + if (box.CanUseType(element.ConnectionsType)) checkCompatibility = true; } isCompatible |= checkCompatibility; @@ -143,6 +145,8 @@ namespace FlaxEditor.Surface.ContextMenu } Visible = isCompatible; + + Profiler.EndEvent(); return isCompatible; }