From 178b81bfff9622d705f2ab15f6380712abdbd623 Mon Sep 17 00:00:00 2001 From: dragonmacher <48328597+dragonmacher@users.noreply.github.com> Date: Mon, 8 Jun 2026 17:31:00 -0400 Subject: [PATCH] GP-6922 - Fixed Enter and Escape in the Create Typedef dialog --- .../datamgr/actions/CreateTypeDefDialog.java | 31 ++++--------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/CreateTypeDefDialog.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/CreateTypeDefDialog.java index 5e617063b9..0e6f44ee78 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/CreateTypeDefDialog.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/CreateTypeDefDialog.java @@ -15,9 +15,6 @@ */ package ghidra.app.plugin.core.datamgr.actions; -import java.util.Arrays; -import java.util.List; - import javax.swing.*; import javax.swing.event.CellEditorListener; import javax.swing.event.ChangeEvent; @@ -26,8 +23,6 @@ import javax.swing.tree.TreePath; import docking.DialogComponentProvider; import docking.widgets.label.GLabel; import ghidra.app.plugin.core.datamgr.DataTypeManagerPlugin; -import ghidra.app.plugin.core.datamgr.tree.ArchiveNode; -import ghidra.app.plugin.core.datamgr.tree.DataTypeTreeNode; import ghidra.app.util.datatype.DataTypeSelectionEditor; import ghidra.program.model.data.*; import ghidra.util.MessageType; @@ -57,10 +52,6 @@ public class CreateTypeDefDialog extends DialogComponentProvider { } private JComponent createWorkPanel() { - List managers = Arrays.stream(plugin.getDataTypeManagers()) - .filter(dtm -> !(dtm instanceof BuiltInDataTypeManager)) - .toList(); - DataTypeManager defaultDTM = getDefaultDataTypeManager(managers); JPanel panel = new JPanel(new PairLayout()); @@ -74,9 +65,10 @@ public class CreateTypeDefDialog extends DialogComponentProvider { panel.add(nameTextField); // data type info - dataTypeEditor = new DataTypeSelectionEditor( - null, /* TODO: can't set default dtm for the data type selection field because the dialog allows switching between destination DTMs */ - plugin.getTool(), AllowedDataTypes.ALL); + // Note: can't set default DTM for the data type selection field because the dialog allows + // switching between destination DTMs + DataTypeManager dtm = null; + dataTypeEditor = new DataTypeSelectionEditor(dtm, plugin.getTool(), AllowedDataTypes.ALL); panel.add(new GLabel("Data type:")); panel.add(dataTypeEditor.getEditorComponent()); @@ -84,11 +76,13 @@ public class CreateTypeDefDialog extends DialogComponentProvider { @Override public void editingStopped(ChangeEvent e) { setStatusText(""); + okCallback(); } @Override public void editingCanceled(ChangeEvent e) { setStatusText(""); + cancelCallback(); } }); @@ -109,19 +103,6 @@ public class CreateTypeDefDialog extends DialogComponentProvider { return panel; } - private DataTypeManager getDefaultDataTypeManager(List mgrs) { - // select the manager from where the dialog was created - Object lastPathComponent = selectedTreePath.getLastPathComponent(); - if (lastPathComponent instanceof DataTypeTreeNode dataTypeTreeNode) { - ArchiveNode archiveNode = dataTypeTreeNode.getArchiveNode(); - DataTypeManager manager = archiveNode.getArchive().getDataTypeManager(); - if (mgrs.contains(manager)) { - return manager; - } - } - return null; - } - @Override protected void okCallback() { // are we valid?