Color getBackgroundColor(Address address) {
			if (colorCache.containsKey(address)) {
				return colorCache.get(address);
			}
			blender.clear();
			for (MarkerSetImpl markers : markerSets) {
				if (markers.isActive() && markers.isColoringBackground() &&
					markers.contains(address)) {
					blender.add(markers.getMarkerColor());
				}
			}
			Color color = blender.getColor(null);
			colorCache.put(address, color);
			return color;
		}
Use this close listener approach instead of plugin events, since we don't get a
ProgramClosedPluginEvent when a trace view is closed, but we can listen for its
domain object closing, which works for plain programs, too.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/marker/MarkerManager.java