public void fireEvent(PluginEvent event) {

		synchronized (eventQ) {
			if (currentEvent != null) {
				if (validateEventChain(currentEvent, event)) {

					// note: it is a bit odd that we assume any event passed to this method is 
					//       triggered by that event.  This may not be the case if we are on a 
					//       background thread.
					event.setTriggerEvent(currentEvent);
					eventQ.add(event);
				}

				return; // allow the current event processing to finish
			}
		}

		// no event processing running right now; start it
		eventQ.add(event);
		Swing.runNow(sendEventsRunnable);
	}
Notify all plugin listeners that are registered to consume the given event. Events are fired
in the SwingThread.

@param event event to fire
Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/mgr/EventManager.java