private void viewChanged(AddressSetView p1AddressSet) {
		if (primaryProgram != null && !showingSecondProgram) {
			return;
		}
		p1ViewAddrSet = p1AddressSet;

		if (showingSecondProgram) {
			ProgramSelection previousP1Selection = currentSelection;
			ProgramSelection previousP2DiffHighlight = p2DiffHighlight;
			ProgramSelection previousP2Selection = p2Selection;

			AddressSet p2ViewAddrSet =
				DiffUtility.getCompatibleAddressSet(p1ViewAddrSet, secondaryDiffProgram);
			diffListingPanel.setView(p2ViewAddrSet);
			FieldPanel fp = diffListingPanel.getFieldPanel();

			AddressSet p1AddressSetAsP2 =
				DiffUtility.getCompatibleAddressSet(p1AddressSet, secondaryDiffProgram);
			AddressIndexMap p2IndexMap = new AddressIndexMap(p1AddressSetAsP2);
			markerManager.getOverviewProvider().setProgram(secondaryDiffProgram, p2IndexMap);
			fp.setBackgroundColorModel(new MarkerServiceBackgroundColorModel(markerManager,
				secondaryDiffProgram, p2IndexMap));

			currentSelection = previousP1Selection;
			p2DiffHighlight = previousP2DiffHighlight;

			p2Selection = previousP2Selection;
			setProgram2Selection(p2Selection);
			if (p2DiffHighlight != null) {
				setDiffHighlight(p2DiffHighlight);
			}
		}
	}
Creates the plugin for indicating program differences to the user.

@param tool the tool that owns this plugin.
Ghidra/Features/ProgramDiff/src/main/java/ghidra/app/plugin/core/diff/ProgramDiffPlugin.java