@Override
	public void propertyChange(PropertyChangeEvent evt) {

		Window win = KeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow();
		if (!isMyWindow(win)) {
			return;
		}

		lastActiveWindow = win;

		// adjust the focus if no component within the window has focus
		Component newFocusComponent = (Component) evt.getNewValue();
		if (newFocusComponent == null) {
			return; // we'll get called again with the correct value
		}

		DockableComponent dockableComponent =
			getDockableComponentForFocusOwner(win, newFocusComponent);
		if (dockableComponent == null) {
			return;
		}

		if (SwingUtilities.isDescendingFrom(newFocusComponent, dockableComponent)) {
			updateDockingWindowStateForNewFocusOwner(newFocusComponent, dockableComponent);
			return;
		}

		// The new Java focus owner is not part of our DockableComponent hierarchy.  See if we need
		// to change the focus to a component that is.
		ensureAllowedFocusOwner(newFocusComponent, dockableComponent);
	}
Invoked by associated docking windows when they become active or inactive

@param window the active window
@param active true signals that this DockingWindowManager has become active
Ghidra/Framework/Docking/src/main/java/docking/DockingWindowManager.java