diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypeManagerPlugin.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypeManagerPlugin.java index 319090e7c8..555cec383b 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypeManagerPlugin.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypeManagerPlugin.java @@ -310,6 +310,7 @@ public class DataTypeManagerPlugin extends ProgramPlugin @Override protected void programActivated(Program program) { program.addListener(this); + provider.programActivated(program); dataTypeManagerHandler.programOpened(program); dataTypePropertyManager.programOpened(program); } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypesProvider.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypesProvider.java index 6300f0e83f..d4ef844a5d 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypesProvider.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypesProvider.java @@ -544,7 +544,7 @@ public class DataTypesProvider extends ComponentProviderAdapter { DataType dataType = dataTypeNode.getDataType(); if (dataType.isDeleted()) { // this can happen during an undo - lastPreviewNode = null; + clearDataTypePreview(); return; } @@ -554,6 +554,11 @@ public class DataTypesProvider extends ComponentProviderAdapter { previewPane.setCaretPosition(0); } + private void clearDataTypePreview() { + lastPreviewNode = null; + previewPane.setText(""); + } + void dispose() { previewUpdateManager.dispose(); archiveGTree.dispose(); @@ -977,6 +982,10 @@ public class DataTypesProvider extends ComponentProviderAdapter { programTreeState.remove(id); } + void programActivated(Program program) { + clearDataTypePreview(); + } + void archiveClosed(DataTypeManager dtm) { dataTypeManagerChanged(dtm); }