diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/associate/AssociateDataTypeAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/associate/AssociateDataTypeAction.java index 67d1396d16..1dcad8d47d 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/associate/AssociateDataTypeAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/associate/AssociateDataTypeAction.java @@ -62,27 +62,15 @@ public class AssociateDataTypeAction extends DockingAction { @Override public boolean isEnabledForContext(ActionContext context) { - if (!(context instanceof DataTypesActionContext)) { - return false; - } - - return hasAnyDtNodes(((DataTypesActionContext) context).getSelectedNodes()); - } - - private boolean hasAnyDtNodes(List nodes) { - if (nodes.isEmpty()) { - return false; - } - for (GTreeNode node : nodes) { - if (node instanceof DataTypeNode) { - return true; - } - } - return false; + // enable this action if any node is a non-built-in data type + return context instanceof DataTypesActionContext dtac && + dtac.getSelectedNodes().stream().anyMatch(node -> { + return node instanceof DataTypeNode dtNode && + !(dtNode.getDataType() instanceof BuiltInDataType); + }); } private boolean isAlreadyAssociated(DataTypesActionContext dtContext) { - List nodes = dtContext.getDisassociatableNodes(); return !nodes.isEmpty(); }