public void forwardMouseEventToListing(MouseWheelEvent e) {
		CodeViewerService codeViewer = tool.getService(CodeViewerService.class);
		ListingPanel listingPanel = codeViewer.getListingPanel();
		FieldPanel fieldPanel = listingPanel.getFieldPanel();
		KeyboardFocusManager.getCurrentKeyboardFocusManager().redispatchEvent(fieldPanel, e);
	}
Unusual Code: We keep arrows in 3 sets: all arrows, selected arrows, and active arrows.
Further, we rebuild arrows as the screen moves, causing the x coordinate to change as arrows
that are no longer on the screen are removed and as new arrows are added. We want to make
sure that we don't end up with an arrow in the selected/active sets that are the same as the
one in the 'all' set, but with a different width. This causes both arrows to become
visible--basically, the selected arrows can become stale as their width changes. This code is
meant to address this out-of-sync behavior.

@param arrow the updated form of the arrow
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/flowarrow/FlowArrowPlugin.java