private void ensureAllowedFocusOwner(Component newFocusComponent,
			DockableComponent dockableComponent) {

		if (nextFocusedPlaceholder != null) {
			// We have a new pending focus request for a DockableComponent, so nothing to do.
			return;
		}

		// We allow JTabbedPanes, as that is the component we use to stack components and users need
		// to be able to select and activate tabs when using the keyboard focus traversal.
		if (newFocusComponent instanceof JTabbedPane) {
			if (focusedPlaceholder != null) {
				focusedPlaceholder.setSelected(false); // update the header to not be focused
				focusedPlaceholder = null;
			}
			return;
		}

		// Transfer focus to one of our component providers when a component gets focus that is
		// not contained in a dockable component provider. This keeps unexpected components
		// from getting focus as the user navigates the application from the keyboard.
		dockableComponent.requestFocus();
	}
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